HandyCafe Docs
owner it-admin

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
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

Kazdy dostawca moze byc indywidualnie wlaczony lub wylaczony w Ustawienia > OAuth.

Przeplyw uwierzytelniania

Przeplyw autoryzacji urzadzenia przebiega nastepujaco:

  1. Klient wybiera dostawce -- na ekranie bezczynnosci klienta klient dotyka przycisku dostawcy (np. Google, Discord).
  2. Klient wysyla zadanie do serwera -- klient powiadamia serwer HandyCafe o zainicjowaniu logowania OAuth.
  3. Serwer zadada kod urzadzenia -- serwer kontaktuje punkt koncowy autoryzacji urzadzenia wybranego dostawcy i otrzymuje kod urzadzenia, kod uzytkownika i URI weryfikacji.
  4. Klient wyswietla kod -- klient pokazuje user_code i verification_uri klientowi, zwykle renderowane jako kod QR do latwego skanowania.
  5. Klient uwierzytelnia sie na telefonie -- klient skanuje kod QR swoim urzadzeniem osobistym (telefonem lub tabletem) i konczy uwierzytelnianie na stronie dostawcy.
  6. 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.
  7. Serwer pobiera dane uzytkownika -- po sukcesie serwer uzywa tokena do pobrania profilu klienta od dostawcy, wlaczajac provider_uid, email, name i avatar_url.
  8. Administrator zatwierdza lub odrzuca -- zadanie logowania pojawia sie na stronie Zadan. Administrator lub kasjer przegladad i zatwierdza lub odrzuca zadanie.
  9. Czlonek tworzony lub laczony -- po zatwierdzeniu tworzone jest nowe konto czlonka lub tozsamosc OAuth jest laczna z istniejacym czlonkiem.
  10. 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.