Logowanie OAuth
HandyCafe obsługuje logowanie społecznościowe/OAuth dla klientów za pomocą Device Authorization Grant (RFC 8628). Ten przepływ jest zaprojektowany dla środowisk kioskowych i publicznych, gdzie klienci nie mogą bezpiecznie wprowadzać poświadczeń na współdzielonych komputerach.
Obsługiwani dostawcy
| Dostawca | Punkt końcowy |
|---|---|
| oauth2.googleapis.com | |
| graph.facebook.com/v21.0 | |
| Apple | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| Discord | discord.com/api/oauth2 |
Każdy dostawca może być indywidualnie włączony lub wyłączony w Ustawienia > OAuth.
Przepływ uwierzytelniania
Przepływ autoryzacji urządzenia przebiega następująco:
- Klient wybiera dostawcę -- na ekranie bezczynności klienta klient dotyka przycisku dostawcy (np. Google, Discord).
- Klient wysyła żądanie do serwera -- klient powiadamia serwer HandyCafe o zainicjowaniu logowania OAuth.
- Serwer zadada kod urządzenia -- serwer kontaktuje punkt końcowy autoryzacji urządzenia wybranego dostawcy i otrzymuje kod urządzenia, kod użytkownika i URI weryfikacji.
- Klient wyświetla kod -- klient pokazuje
user_codeiverification_uriklientowi, zwykle renderowane jako kod QR do łatwego skanowania. - Klient uwierzytelnia się na telefonie -- klient skanuje kod QR swoim urządzeniem osobistym (telefonem lub tabletem) i kończy uwierzytelnianie na stronie dostawcy.
- Serwer odpytuje o token -- serwer okresowo odpytuje dostawcę o token. Stany odpytywania obejmują:
- Oczekuje -- klient nie zakończył jeszcze uwierzytelniania.
- Zwolnij -- odpytywanie zbyt częste; serwer zwalnia.
- Sukces -- uwierzytelnianie zakończone; token otrzymany.
- Wygasły -- kod urządzenia wygasł przed uwierzytelnieniem.
- Błąd -- wystąpił nieoczekiwany błąd.
- Serwer pobiera dane użytkownika -- po sukcesie serwer używa tokena do pobrania profilu klienta od dostawcy, włączając
provider_uid,email,nameiavatar_url. - Administrator zatwierdza lub odrzuca -- żądanie logowania pojawia się na stronie Zadań. Administrator lub kasjer przegladad i zatwierdza lub odrzuca zadanie.
- Członek tworzony lub łączony -- po zatwierdzeniu tworzone jest nowe konto członka lub tożsamość OAuth jest laczna z istniejącym członkiem.
- Sesja klienta się uruchamia -- klient otrzymuje potwierdzenie i sesja klienta rozpoczyna się.
Uwagi dotyczące bezpieczeństwa
- Poświadczenia nigdy nie dotykają współdzielonego komputera. Klienci uwierzytelniają się wyłącznie na swoich urządzeniach osobistych. Żadne hasła ani tokeny nie są wprowadzane na maszynie klienckiej.
- Bramka zatwierdzania administratora. Każde żądanie logowania OAuth musi być zatwierdzone przez administratora lub kasjera przed uruchomieniem sesji, zapobiegając nieautoryzowanemu dostępowi.
- Konfigurowalny wymóg środków. Opcja "zezwól na logowanie bez środków" może być włączona lub wyłączona, kontrolując czy klienci potrzebują dodatniego salda do logowania przez OAuth.
Konfiguracja
Dostawcy OAuth są konfigurwani w Ustawienia > OAuth. Każdy dostawca wymaga własnych poświadczeń (client ID i client secret) uzyskanych z konsoli deweloperskiej dostawcy. Włącz tylko dostawców, których chcesz oferować klientom.