HandyCafe Docs
owner it-admin

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

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:

  1. Klient wybiera dostawcę -- na ekranie bezczynności klienta klient dotyka przycisku dostawcy (np. Google, Discord).
  2. Klient wysyła żądanie do serwera -- klient powiadamia serwer HandyCafe o zainicjowaniu logowania OAuth.
  3. 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.
  4. Klient wyświetla kod -- klient pokazuje user_code i verification_uri klientowi, zwykle renderowane jako kod QR do łatwego skanowania.
  5. Klient uwierzytelnia się na telefonie -- klient skanuje kod QR swoim urządzeniem osobistym (telefonem lub tabletem) i kończy uwierzytelnianie na stronie dostawcy.
  6. 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.
  7. Serwer pobiera dane użytkownika -- po sukcesie serwer używa tokena do pobrania profilu klienta od dostawcy, włączając provider_uid, email, name i avatar_url.
  8. Administrator zatwierdza lub odrzuca -- żądanie logowania pojawia się na stronie Zadań. Administrator lub kasjer przegladad i zatwierdza lub odrzuca zadanie.
  9. Członek tworzony lub łączony -- po zatwierdzeniu tworzone jest nowe konto członka lub tożsamość OAuth jest laczna z istniejącym członkiem.
  10. 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.