Zum Inhalt springen

Installation

Diese Anleitung führt dich durch den kompletten Setup-Prozess für OAuth Auth Cloudflare.

Bevor du startest, stelle sicher, dass du Folgendes hast:

  • Node.js: Version 18 oder höher
  • npm oder yarn: Paketmanager
  • Cloudflare Account: Kostenlos erstellen
  • Wrangler CLI: Cloudflare Workers CLI-Tool

Klone das Repository und installiere die Abhängigkeiten:

Terminal-Fenster
git clone https://github.com/felixlammers/oauth-auth-cloudflare.git
cd oauth-auth-cloudflare
npm install

Falls noch nicht installiert, installiere Wrangler global oder als Dev-Dependency:

Terminal-Fenster
# Global
npm install -g wrangler
# Oder als Dev-Dependency
npm install --save-dev wrangler

Melde dich bei deinem Cloudflare-Account an:

Terminal-Fenster
wrangler login

Dies öffnet einen Browser, in dem du die Authentifizierung autorisieren kannst.

Cloudflare KV wird für die Speicherung von Sessions und Credentials verwendet:

Terminal-Fenster
# Production Namespace
wrangler kv:namespace create "AUTH_KV"
# Preview Namespace (für lokale Entwicklung)
wrangler kv:namespace create "AUTH_KV" --preview

Kopiere die IDs aus der Ausgabe und füge sie in wrangler.toml ein:

[[kv_namespaces]]
binding = "AUTH_KV"
id = "deine-production-id"
preview_id = "deine-preview-id"

Du musst eine OAuth-App bei deinem gewünschten Provider erstellen.

  1. Gehe zu GitHub Developer Settings
  2. Klicke auf “OAuth Apps” → “New OAuth App”
  3. Fülle aus:
    • Application name: Dein App Name
    • Homepage URL: https://deine-domain.de
    • Authorization callback URL: https://auth.deine-domain.de/auth/callback
  4. Kopiere Client ID und Client Secret
  1. Gehe zu Google Cloud Console
  2. Erstelle ein neues Projekt oder wähle ein bestehendes
  3. Aktiviere Google+ API
  4. Gehe zu “Credentials” → “Create Credentials” → “OAuth 2.0 Client IDs”
  5. Wähle “Web application” und füge hinzu:
    • Authorized redirect URIs: https://auth.deine-domain.de/auth/callback
  6. Kopiere Client ID und Client Secret

Speichere die OAuth-Credentials als Cloudflare Secrets:

Terminal-Fenster
# OAuth Provider (github oder google)
wrangler secret put OAUTH_PROVIDER
# => github
# Client ID von deiner OAuth App
wrangler secret put OAUTH_CLIENT_ID
# => deine-client-id
# Client Secret von deiner OAuth App
wrangler secret put OAUTH_CLIENT_SECRET
# => dein-client-secret
# Callback URL (muss mit OAuth App übereinstimmen)
wrangler secret put OAUTH_REDIRECT_URI
# => https://auth.deine-domain.de/auth/callback
# Frontend URL (für CORS und Redirects)
wrangler secret put FRONTEND_URL
# => https://deine-domain.de
# JWT Secret (zufälliger String, mindestens 32 Zeichen)
wrangler secret put JWT_SECRET
# => dein-langes-random-secret

Deploy deinen Worker zu Cloudflare:

Terminal-Fenster
# Development
wrangler dev
# Production
wrangler deploy

Der Worker wird unter einer *.workers.dev Domain verfügbar sein.

Für eine benutzerdefinierte Domain:

  1. Gehe zu Cloudflare Dashboard
  2. Wähle deinen Worker
  3. Gehe zu “Triggers” → “Custom Domains”
  4. Füge deine Domain hinzu (z.B. auth.deine-domain.de)

Dein Authentication Server ist jetzt bereit!