Logowanie OAuth
HandyCafe obsluguje logowanie spolecznosciowe/OAuth dla klientow za pomoca Device Authorization Grant (RFC 8628). Ten przeplyw jest zaprojektowany dla srodowisk kioskowych i publicznych, gdzie klienci nie moga bezpiecznie wprowadzac poswiadczen na wspoldzielonych komputerach.
Obslugiwani dostawcy
| Dostawca | Punkt koncowy |
|---|---|
| oauth2.googleapis.com | |
| graph.facebook.com/v21.0 | |
| Apple | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| Discord | discord.com/api/oauth2 |
Kazdy dostawca moze byc indywidualnie wlaczony lub wylaczony w Ustawienia > OAuth.
Przeplyw uwierzytelniania
Przeplyw autoryzacji urzadzenia przebiega nastepujaco:
- Klient wybiera dostawce -- na ekranie bezczynnosci klienta klient dotyka przycisku dostawcy (np. Google, Discord).
- Klient wysyla zadanie do serwera -- klient powiadamia serwer HandyCafe o zainicjowaniu logowania OAuth.
- Serwer zadada kod urzadzenia -- serwer kontaktuje punkt koncowy autoryzacji urzadzenia wybranego dostawcy i otrzymuje kod urzadzenia, kod uzytkownika i URI weryfikacji.
- Klient wyswietla kod -- klient pokazuje
user_codeiverification_uriklientowi, zwykle renderowane jako kod QR do latwego skanowania. - Klient uwierzytelnia sie na telefonie -- klient skanuje kod QR swoim urzadzeniem osobistym (telefonem lub tabletem) i konczy uwierzytelnianie na stronie dostawcy.
- Serwer odpytuje o token -- serwer okresowo odpytuje dostawce o token. Stany odpytywania obejmuja:
- Oczekuje -- klient nie zakonczyl jeszcze uwierzytelniania.
- Zwolnij -- odpytywanie zbyt czeste; serwer zwalnia.
- Sukces -- uwierzytelnianie zakonczone; token otrzymany.
- Wygasly -- kod urzadzenia wygasl przed uwierzytelnieniem.
- Blad -- wystapil nieoczekiwany blad.
- Serwer pobiera dane uzytkownika -- po sukcesie serwer uzywa tokena do pobrania profilu klienta od dostawcy, wlaczajac
provider_uid,email,nameiavatar_url. - Administrator zatwierdza lub odrzuca -- zadanie logowania pojawia sie na stronie Zadan. Administrator lub kasjer przegladad i zatwierdza lub odrzuca zadanie.
- Czlonek tworzony lub laczony -- po zatwierdzeniu tworzone jest nowe konto czlonka lub tozsamosc OAuth jest laczna z istniejacym czlonkiem.
- Sesja klienta sie uruchamia -- klient otrzymuje potwierdzenie i sesja klienta rozpoczyna sie.
Uwagi dotyczace bezpieczenstwa
- Poswiadczenia nigdy nie dotykaja wspoldzielonego komputera. Klienci uwierzytelniaja sie wylacznie na swoich urzadzeniach osobistych. Zadne hasla ani tokeny nie sa wprowadzane na maszynie klienckiej.
- Bramka zatwierdzania administratora. Kazde zadanie logowania OAuth musi byc zatwierdzone przez administratora lub kasjera przed uruchomieniem sesji, zapobiegajac nieautoryzowanemu dostepowi.
- Konfigurowalny wymog srodkow. Opcja "zezwol na logowanie bez srodkow" moze byc wlaczona lub wylaczona, kontrolujac czy klienci potrzebuja dodatniego salda do logowania przez OAuth.
Konfiguracja
Dostawcy OAuth sa konfigurwani w Ustawienia > OAuth. Kazdy dostawca wymaga wlasnych poswiadczen (client ID i client secret) uzyskanych z konsoli deweloperskiej dostawcy. Wlacz tylko dostawcow, ktorych chcesz oferowac klientom.