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 |
|---|---|
| oauth2.googleapis.com | |
| 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:
- Kunde wählt einen Anbieter -- auf dem Client-Leerlaufbildschirm tippt der Kunde auf eine Anbieterschaltfläche (z. B. Google, Discord).
- Client sendet Anfrage an Server -- der Client benachrichtigt den HandyCafe Server, dass eine OAuth-Anmeldung gestartet wurde.
- 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.
- Client zeigt den Code an -- der Client zeigt dem Kunden den
user_codeund dieverification_uri, typischerweise als QR-Code zum einfachen Scannen. - 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.
- 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.
- Server ruft Benutzerinformationen ab -- bei Erfolg verwendet der Server den Token, um das Kundenprofil vom Anbieter abzurufen, einschließlich
provider_uid,email,nameundavatar_url. - Admin genehmigt oder lehnt ab -- die Anmeldeanfrage erscheint auf der Anfragenseite. Ein Admin oder Kassierer prüft und genehmigt oder lehnt die Anfrage ab.
- Mitglied erstellt oder verknüpft -- bei Genehmigung wird ein neues Mitgliedskonto erstellt oder die OAuth-Identität mit einem bestehenden Mitglied verknüpft.
- 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.