Zum Inhalt springen

Auth-Provider

Setzkasten unterstützt GitHub OAuth und Google OAuth als Login-Methoden. Du kannst einen oder beide Provider gleichzeitig aktivieren.

GitHub OAuth (Empfohlen)

Bei GitHub OAuth wird automatisch geprüft, ob der eingeloggte User Schreibrechte auf das konfigurierte Repository hat. Kein allowedEmails nötig — GitHub-Berechtigungen sind die Zugangskontrolle.

1

OAuth App anlegen

GitHub → Settings → Developer settings → OAuth Apps → New OAuth App

2

Callback-URL setzen

https://deine-seite.de/api/setzkasten/auth/callback

3

Credentials in Config

GITHUB_CLIENT_ID + GITHUB_CLIENT_SECRET

GitHub Settings
Application name: Setzkasten CMS
Homepage URL: https://deine-seite.de
Authorization callback URL: https://deine-seite.de/api/setzkasten/auth/callback
astro.config.mjs
github: {
  clientId: process.env.GITHUB_CLIENT_ID,
  clientSecret: process.env.GITHUB_CLIENT_SECRET,
}
Wichtig: Für lokale Entwicklung eine separate OAuth App mit http://localhost:4321 als Callback-URL anlegen.

Google OAuth

Google OAuth eignet sich wenn der Admin-Zugang nicht an einen GitHub-Account gebunden sein soll. Pflicht: allowedEmails — sonst kann sich jeder mit Google-Account einloggen.

astro.config.mjs
google: {
  clientId: process.env.GOOGLE_CLIENT_ID,
  clientSecret: process.env.GOOGLE_CLIENT_SECRET,
},
allowedEmails: ['du@example.com', 'team@example.com'],

Beide Provider kombinieren

GitHub und Google können gleichzeitig aktiv sein. Der Login-Screen zeigt beide Optionen. Jeder Provider hat seine eigene Zugangskontrolle (GitHub: Repo-Rechte, Google: allowedEmails).

Session

Sessions werden in-memory gespeichert und laufen bis zum Server-Neustart. Für persistente Sessions in Produktionsumgebungen mit mehreren Instanzen wird zukünftig ein Redis-Adapter geplant.