HandyCafe Docs
owner it-admin

OAuth-Anmeldung

HandyCafe unterstützt soziale/OAuth-Anmeldung für Kunden über den Device Authorization Grant (RFC 8628). Dieser Ablauf ist für Kiosk- und öffentliche Umgebungen konzipiert, in denen Kunden nicht sicher Zugangsdaten an gemeinsam genutzten PCs eingeben können.

Unterstützte Anbieter

Anbieter Endpunkt
Google oauth2.googleapis.com
Facebook graph.facebook.com/v21.0
Apple appleid.apple.com
X (Twitter) api.x.com/2/oauth2
Discord discord.com/api/oauth2

Jeder Anbieter kann unter Einstellungen > OAuth einzeln aktiviert oder deaktiviert werden.

Authentifizierungsablauf

Der Geräteautorisierungsablauf durchläuft folgende Schritte:

  1. Kunde wählt einen Anbieter -- auf dem Client-Leerlaufbildschirm tippt der Kunde auf eine Anbieterschaltfläche (z. B. Google, Discord).
  2. Client sendet Anfrage an Server -- der Client benachrichtigt den HandyCafe Server, dass eine OAuth-Anmeldung gestartet wurde.
  3. Server fordert Gerätecode an -- der Server kontaktiert den Geräteautorisierungs-Endpunkt des ausgewählten Anbieters und erhält einen Gerätecode, Benutzercode und Verifizierungs-URI.
  4. Client zeigt den Code an -- der Client zeigt dem Kunden den user_code und die verification_uri, typischerweise als QR-Code zum einfachen Scannen.
  5. Kunde authentifiziert sich auf dem Telefon -- der Kunde scannt den QR-Code mit seinem persönlichen Gerät (Telefon oder Tablet) und schließt die Authentifizierung auf der Website des Anbieters ab.
  6. Server fragt Token ab -- der Server fragt regelmäßig beim Anbieter nach einem Token. Abfragestatus umfassen:
    • Ausstehend -- der Kunde hat die Authentifizierung noch nicht abgeschlossen.
    • Verlangsamung -- zu häufige Abfragen. Der Server reduziert die Frequenz.
    • Erfolg -- Authentifizierung abgeschlossen. Token erhalten.
    • Abgelaufen -- der Gerätecode ist vor der Authentifizierung abgelaufen.
    • Fehler -- ein unerwarteter Fehler ist aufgetreten.
  7. Server ruft Benutzerinformationen ab -- bei Erfolg verwendet der Server den Token, um das Kundenprofil vom Anbieter abzurufen, einschließlich provider_uid, email, name und avatar_url.
  8. Admin genehmigt oder lehnt ab -- die Anmeldeanfrage erscheint auf der Anfragenseite. Ein Admin oder Kassierer prüft und genehmigt oder lehnt die Anfrage ab.
  9. Mitglied erstellt oder verknüpft -- bei Genehmigung wird ein neues Mitgliedskonto erstellt oder die OAuth-Identität mit einem bestehenden Mitglied verknüpft.
  10. Client-Sitzung startet -- der Client erhält die Bestätigung und die Sitzung des Kunden beginnt.

Sicherheitsaspekte

  • Zugangsdaten berühren niemals den gemeinsam genutzten PC. Kunden authentifizieren sich ausschließlich auf ihren persönlichen Geräten. Keine Passwörter oder Tokens werden auf dem Client-Rechner eingegeben.
  • Admin-Genehmigungsschranke. Jede OAuth-Anmeldeanfrage muss von einem Admin oder Kassierer genehmigt werden, bevor eine Sitzung startet. Dies verhindert unbefugten Zugang.
  • Konfigurierbares Guthabenerfordernis. Eine Option "Anmeldung ohne Guthaben erlauben" kann aktiviert oder deaktiviert werden. Sie steuert, ob Kunden ein positives Guthaben benötigen, um sich per OAuth anzumelden.

Konfiguration

OAuth-Anbieter werden unter Einstellungen > OAuth konfiguriert. Jeder Anbieter benötigt eigene Client-Zugangsdaten (Client-ID und Client-Secret), die über die Entwicklerkonsole des Anbieters bezogen werden. Aktivieren Sie nur die Anbieter, die Sie Ihren Kunden anbieten möchten.