HandyCafe Docs
owner it-admin

Conectare OAuth

HandyCafe acceptă autentificarea socială/OAuth pentru clienții care utilizează acordarea de autorizare a dispozitivului (RFC 8628). Acest flux este conceput pentru chioșcuri și medii publice în care clienții nu pot introduce în siguranță acreditările pe computerele partajate.

Furnizori acceptați

Furnizor Punct final
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

Fiecare furnizor poate fi activat sau dezactivat individual în Setări > OAuth.

Flux de autentificare

Fluxul de autorizare a dispozitivului trece prin următorii pași:

  1. Clientul selectează un furnizor -- pe ecranul inactiv al clientului, clientul atinge un buton al furnizorului (de exemplu, Google, Discord).
  2. Clientul trimite cererea către server -- clientul notifică serverul HandyCafe că a fost inițiată o conectare OAuth.
  3. Serverul solicită un cod de dispozitiv -- serverul contactează punctul final de autorizare a dispozitivului al furnizorului selectat și primește un cod de dispozitiv, un cod de utilizator și un URI de verificare.
  4. Clientul afișează codul -- clientul îi arată clientului user_code și verification_uri, de obicei redat ca cod QR pentru scanare ușoară.
  5. Clientul se autentifică pe telefonul său -- clientul scanează codul QR cu dispozitivul personal (telefon sau tabletă) și finalizează autentificarea pe site-ul web al furnizorului.
  6. Serverul sondajează pentru token -- serverul interogează periodic furnizorul pentru un token. Stările de sondaj includ:
    • În așteptare -- clientul nu a finalizat încă autentificarea.
    • SlowDown -- sondaje prea frecvente; serverul se retrage.
    • Succes -- autentificarea finalizată; jeton primit.
    • Expirat -- codul dispozitivului a expirat înainte de autentificare.
    • Eroare -- a apărut o eroare neașteptată.
  7. Serverul preia informațiile despre utilizator -- la succes, serverul folosește tokenul pentru a prelua profilul clientului de la furnizor, inclusiv provider_uid, email, name și avatar_url.
  8. Administratorul aprobă sau respinge -- solicitarea de conectare apare pe pagina de solicitări. Un administrator sau un casier examinează și aprobă sau respinge cererea.
  9. Membru creat sau conectat -- dacă este aprobat, este creat un nou cont de membru sau identitatea OAuth este conectată la un membru existent.
  10. Sesiunea client începe -- clientul primește confirmarea și începe sesiunea clientului.

Considerații de securitate

  • Acreditările nu ating niciodată computerul partajat. Clienții se autentifică numai pe dispozitivele lor personale. Nu sunt introduse parole sau simboluri pe computerul client.
  • Poarta de aprobare a administratorului. Fiecare solicitare de conectare OAuth trebuie aprobată de un administrator sau casier înainte de începerea unei sesiuni, prevenind accesul neautorizat.
  • Cerință de credit configurabilă. Opțiunea „permite conectarea fără credit” poate fi activată sau dezactivată, controlând dacă clienții au nevoie de un sold pozitiv pentru a se conecta prin OAuth.

Configurare

Furnizorii OAuth sunt configurați în Setări > OAuth. Fiecare furnizor necesită propriile acreditări de client (ID-ul clientului și secretul clientului) obținute din consola pentru dezvoltatori a furnizorului. Activați numai furnizorii pe care doriți să îi oferiți clienților dvs.