So richten Sie die OAuth-Social-Login-Funktion ein
Diese Anleitung führt Sie durch die Konfiguration der Social-Login-Funktion, damit sich Kunden mit ihren Google-, Facebook-, Apple-, X- oder Discord-Konten an Client-PCs anmelden können. HandyCafe verwendet den Device Authorization Grant Flow (RFC 8628), der für Geräte ohne vollständigen Browser konzipiert ist. Kunden scannen einen QR-Code mit ihrem Telefon zur Authentifizierung.
Was Sie benötigen
- Administratorzugang zum HandyCafe-Server.
- Ein Google Cloud Console-Konto (für Google OAuth) oder entsprechenden Zugang zum Entwicklerportal anderer Anbieter.
- Den laufenden und im Netzwerk erreichbaren HandyCafe-Server.
- Mindestens einen verbundenen Client-PC zum Testen des Anmeldevorgangs.
So funktioniert der OAuth-Device-Flow in HandyCafe
Bevor Sie mit der Einrichtung beginnen, eine Zusammenfassung des Ablaufs:
- Ein Kunde an einem bereitstehenden Client-PC klickt auf die Social-Login-Schaltfläche (z. B. "Mit Google anmelden").
- Der Client sendet eine OAuth-Startanfrage an den Server.
- Der Server kontaktiert den Device-Authorization-Endpunkt des Anbieters und erhält einen Gerätecode, einen Benutzercode und eine Verifizierungs-URL.
- Der Client zeigt einen QR-Code und den Benutzercode auf dem Sperrbildschirm an.
- Der Kunde scannt den QR-Code mit seinem Telefon und authentifiziert sich beim Anbieter.
- Der Server fragt den Anbieter ab, bis die Authentifizierung abgeschlossen ist.
- Der Server erstellt eine OAuth-Anmeldeanfrage, die auf der Anfragenseite erscheint.
- Ein Administrator oder Kassierer genehmigt die Anfrage.
- Ein neues Mitgliedskonto wird erstellt (oder ein bestehendes verknüpft) und der Kunde wird angemeldet.
So richten Sie Google OAuth ein
Google ist der am häufigsten verwendete Anbieter. Dieser Abschnitt behandelt jeden Schritt von der Erstellung des Google-Cloud-Projekts bis zum Test der ersten Anmeldung.
Teil A: Google-Cloud-Zugangsdaten erstellen
- Öffnen Sie die Google Cloud Console unter https://console.cloud.google.com in Ihrem Browser.
- Erstellen Sie ein neues Projekt oder wählen Sie ein bestehendes aus. Benennen Sie es erkennbar, z. B. "HandyCafe OAuth".
- Navigieren Sie zu APIs & Dienste > OAuth-Zustimmungsbildschirm.
- Wählen Sie Extern als Benutzertyp (es sei denn, Sie haben eine Google-Workspace-Organisation und möchten nur interne Nutzer).
- Füllen Sie die Pflichtfelder aus: App-Name ("Ihr Cafe-Name"), Support-E-Mail und Kontakt-E-Mail des Entwicklers.
- Klicken Sie bei den Abschnitten Bereiche und Testnutzer jeweils auf Speichern und fortfahren. Sie müssen keine speziellen Bereiche hinzufügen. Die Standard-Bereiche E-Mail und Profil genügen.
- Navigieren Sie zu APIs & Dienste > Anmeldedaten.
- Klicken Sie auf Anmeldedaten erstellen > OAuth-Client-ID.
- Wählen Sie als Anwendungstyp Fernseher und eingeschränkte Eingabegeräte. Dies ist entscheidend. HandyCafe verwendet den Device Authorization Grant Flow, der diesen spezifischen Client-Typ erfordert.
- Geben Sie einen Namen für den Client ein (z. B. "HandyCafe Device Flow").
- Klicken Sie auf Erstellen.
- Kopieren Sie die Client-ID und den Client-Secret aus dem Bestätigungsdialog. Bewahren Sie diese sicher auf. Sie benötigen beide Werte im nächsten Abschnitt.
Teil B: HandyCafe-Server konfigurieren
- Öffnen Sie die HandyCafe-Server-Anwendung.
- Navigieren Sie über das Zahnradsymbol in der linken Seitenleiste zu Einstellungen.
- Wählen Sie den Tab OAuth.
- Aktivieren Sie den OAuth-Schalter oben auf der Seite. Dies aktiviert die Social-Login-Funktion global auf allen Client-PCs.
- Suchen Sie die Google-Anbieterzeile in der Anbieterliste.
- Aktivieren Sie den Google-Schalter, um diesen Anbieter zu aktivieren.
- Fügen Sie Ihre Client-ID aus Schritt 12 in das Feld Client-ID ein.
- Fügen Sie Ihren Client-Secret aus Schritt 12 in das Feld Client-Secret ein.
- Klicken Sie auf Speichern, um die Konfiguration zu übernehmen.
Erwartetes Ergebnis: Der OAuth-Tab zeigt Google als aktiviert mit Ihren eingetragenen Zugangsdaten. Die Einstellungen werden an alle verbundenen Clients übertragen.
Teil C: Anmeldevorgang testen
- Gehen Sie zu einem verbundenen Client-PC. Der Sperrbildschirm sollte nun einen Social-Login-Bereich mit einer Google-Anmeldeschaltfläche anzeigen.
- Klicken Sie auf dem Client-Sperrbildschirm auf die Google-Anmeldeschaltfläche.
- Der Client zeigt einen QR-Code und einen Benutzercode (eine kurze alphanumerische Zeichenkette) an.
- Scannen Sie den QR-Code mit Ihrem Telefon. Es öffnet sich Googles Geräteverifizierungsseite.
- Melden Sie sich mit einem Google-Konto an und geben Sie den Benutzercode ein, wenn Sie dazu aufgefordert werden.
- Autorisieren Sie die Anwendung.
Erwartetes Ergebnis: Auf dem Server ertönt ein Benachrichtigungston und ein neuer Eintrag erscheint auf der Anfragenseite. Die Anfrage zeigt den Google-Kontonamen, die E-Mail-Adresse und den Client-PC, der die Anmeldung initiiert hat.
So genehmigen Sie eine Anmeldeanfrage
Jede OAuth-Anmeldung erzeugt eine Anfrage, die von einem Administrator oder Kassierer genehmigt werden muss, bevor der Kunde Zugang erhält.
- Wenn eine Anmeldeanfrage eingeht, ertönt ein Benachrichtigungston auf dem Server und ein Badge erscheint am Anfragenseiten-Symbol in der Seitenleiste.
- Navigieren Sie zur Anfragen-Seite.
- Die ausstehende Anfrage zeigt:
- Anbietername (z. B. Google).
- Anzeigename vom Anbieter (z. B. "Max Mustermann").
- E-Mail-Adresse (z. B. "max@beispiel.de").
- Den Client-PC, der die Anfrage initiiert hat (Hostname oder Anzeigename).
- Zeitstempel.
- Überprüfen Sie die Anfragedetails. Stellen Sie sicher, dass die Person am Client-PC mit den Kontoinformationen übereinstimmt.
- Klicken Sie auf Genehmigen, um die Anfrage zu akzeptieren.
Erwartetes Ergebnis: Falls kein bestehendes Mitgliedskonto mit dieser OAuth-Identität verknüpft ist, wird automatisch ein neues erstellt. Der Anzeigename und die E-Mail-Adresse vom Anbieter werden verwendet. Der Kunde wird angemeldet und der Client-PC wechselt vom Sperrbildschirm zur Online-Seite. Falls bereits ein Mitgliedskonto mit dieser OAuth-Identität verknüpft war, wird das bestehende Mitglied direkt angemeldet.
Tipp: Falls die Anmeldeanfrage verdächtig erscheint (z. B. der PC ist unbeaufsichtigt oder die Anfrage wirkt automatisiert), klicken Sie stattdessen auf Ablehnen. Der Kunde sieht eine Meldung "Zugang verweigert" und kann es erneut versuchen.
So richten Sie Facebook OAuth ein
- Öffnen Sie das Facebook-Entwicklerportal unter https://developers.facebook.com .
- Erstellen Sie eine neue App. Wählen Sie den App-Typ Consumer.
- Navigieren Sie zur Seite Einstellungen > Allgemein der App. Notieren Sie die App-ID und das App-Secret.
- Navigieren Sie zu Produkt hinzufügen und fügen Sie Facebook Login for Devices hinzu.
- Fügen Sie in den Einstellungen von Facebook Login for Devices Ihre Weiterleitungs-URIs hinzu, falls vom Portal gefordert.
- Öffnen Sie den HandyCafe-Server und navigieren Sie zu Einstellungen > OAuth.
- Suchen Sie die Facebook-Anbieterzeile.
- Aktivieren Sie den Facebook-Schalter.
- Fügen Sie die App-ID in das Feld Client-ID ein.
- Fügen Sie das App-Secret in das Feld Client-Secret ein.
- Klicken Sie auf Speichern.
Erwartetes Ergebnis: Facebook erscheint als aktivierter Anbieter. Client-Sperrbildschirme zeigen neben anderen aktivierten Anbietern eine Facebook-Anmeldeschaltfläche.
So richten Sie Discord OAuth ein
- Öffnen Sie das Discord-Entwicklerportal unter https://discord.com/developers/applications .
- Erstellen Sie eine neue Anwendung. Benennen Sie sie nach Ihrem Cafe.
- Navigieren Sie zum Abschnitt OAuth2 in der linken Seitenleiste.
- Kopieren Sie die Client-ID und generieren Sie einen Client-Secret. Bewahren Sie das Secret sicher auf, da Discord es nur einmal anzeigt.
- Öffnen Sie den HandyCafe-Server und navigieren Sie zu Einstellungen > OAuth.
- Suchen Sie die Discord-Anbieterzeile (standardmäßig deaktiviert).
- Aktivieren Sie den Discord-Schalter.
- Fügen Sie die Client-ID in das Feld Client-ID ein.
- Fügen Sie den Client-Secret in das Feld Client-Secret ein.
- Klicken Sie auf Speichern.
Erwartetes Ergebnis: Discord steht nun als Anmeldeoption auf Client-Sperrbildschirmen zur Verfügung.
So erlauben Sie die Anmeldung ohne Guthaben
Standardmäßig erlaubt HandyCafe OAuth-authentifizierten Kunden die Anmeldung auch ohne Guthaben oder Zeitguthaben. Sie können dieses Verhalten ändern.
- Navigieren Sie zu Einstellungen > OAuth.
- Suchen Sie den Schalter Anmeldung ohne Guthaben erlauben.
- Falls aktiviert (Standard), können sich Kunden, die sich über OAuth authentifizieren, unabhängig von ihrem Kontostand anmelden. Ein Kassierer kann eine Postpaid-Sitzung für sie starten.
- Falls deaktiviert, müssen Kunden entweder Geld- oder Zeitguthaben besitzen, um sich anzumelden. Kunden mit einem Kontostand von null sehen eine Meldung, die sie auffordert, den Kassierer zum Aufladen aufzusuchen.
- Klicken Sie nach Änderung des Schalters auf Speichern.
Erwartetes Ergebnis: Das Verhalten tritt sofort für neue Anmeldeanfragen in Kraft. Bestehende Sitzungen sind nicht betroffen.
So verknüpfen Sie eine OAuth-Identität mit einem bestehenden Mitglied
Falls ein Kunde bereits ein Mitgliedskonto hat (manuell vom Kassierer erstellt) und sich dann erstmals über OAuth anmeldet, kann der Genehmigungsprozess die OAuth-Identität mit dem bestehenden Konto verknüpfen.
- Wenn die OAuth-Anmeldeanfrage auf der Anfragenseite eingeht, prüfen Sie, ob die E-Mail-Adresse mit einem bestehenden Mitglied übereinstimmt.
- Falls das System eine Übereinstimmung erkennt, bietet der Genehmigungsdialog an, die OAuth-Identität mit dem bestehenden Mitglied zu verknüpfen, anstatt ein neues Konto zu erstellen.
- Genehmigen Sie die Anfrage mit ausgewählter Verknüpfungsoption.
Erwartetes Ergebnis: Das bestehende Mitgliedskonto erhält eine OAuth-Verknüpfung. Zukünftige Anmeldungen über diesen Anbieter umgehen den Genehmigungsschritt und melden das Mitglied direkt an (nach der ersten Genehmigung).
Häufige Fehler, die Sie vermeiden sollten
- Falschen OAuth-Client-Typ in der Google Cloud Console verwenden. Sie müssen beim Erstellen der OAuth-Client-ID "Fernseher und eingeschränkte Eingabegeräte" auswählen. Falls Sie "Webanwendung" oder "Desktop-App" wählen, funktioniert der Device Authorization Flow nicht und der Client kann keinen Gerätecode abrufen.
- Globalen OAuth-Schalter nicht aktivieren. Einzelne Anbieter zu aktivieren genügt nicht. Der Haupt-OAuth-Schalter oben auf der OAuth-Einstellungsseite muss ebenfalls eingeschaltet sein.
- Anmeldeanfragen nicht genehmigen. OAuth-Anmeldungen erfordern eine ausdrückliche Genehmigung vom Server. Falls niemand die Anfragenseite überwacht, warten Kunden endlos am Sperrbildschirm. Weisen Sie in Stoßzeiten einen Kassierer zur Überwachung der Anfragen zu.
- Gerätecodes ablaufen lassen. Gerätecodes haben eine begrenzte Gültigkeitsdauer (typischerweise 5-10 Minuten). Falls der Kunde zu lange braucht, um den QR-Code zu scannen und sich zu authentifizieren, verfällt der Code und der Vorgang muss neu gestartet werden. Weisen Sie Kunden darauf hin, zügig zu scannen.
- Zugangsdaten mit zusätzlichen Leerzeichen einfügen. Stellen Sie beim Kopieren der Client-ID oder des Client-Secret aus dem Anbieterportal sicher, dass keine führenden oder abschließenden Leerzeichen enthalten sind. Zusätzliche Leerzeichen verursachen Authentifizierungsfehler.
- Google-OAuth-App nicht veröffentlichen. Google-Apps im Modus "Testen" erlauben nur eine begrenzte Anzahl von Testnutzern. Damit sich jeder Kunde anmelden kann, müssen Sie die App über die OAuth-Zustimmungsbildschirm-Seite veröffentlichen und alle erforderlichen Verifizierungsschritte abschließen.
- Client-ID und Client-Secret verwechseln. Dies sind zwei verschiedene Werte. Die Client-ID ist öffentlich. Der Client-Secret muss vertraulich bleiben. Das Vertauschen verursacht Authentifizierungsfehler.
- Cafe-Namen nicht konfigurieren. Der Cafe-Name aus Ihren HandyCafe-Einstellungen wird während des OAuth-Vorgangs auf dem Client-Sperrbildschirm angezeigt. Ein leerer oder Standardname wirkt unprofessionell. Legen Sie Ihren Cafe-Namen unter Einstellungen > Allgemein fest, bevor Sie OAuth aktivieren.