HandyCafe Docs
owner it-admin

Cum să configurați autentificarea socială OAuth

Acest ghid vă îndrumă prin configurarea autentificărilor sociale, astfel încât clienții să se poată conecta la computerele client folosind conturile lor Google, Facebook, Apple, X sau Discord. HandyCafe utilizează fluxul Device Authorization Grant (RFC 8628), care este conceput pentru dispozitive fără un browser complet. Clienții scanează un cod QR cu telefonul pentru a se autentifica.

De ce vei avea nevoie

  • Acces de administrator la serverul HandyCafe.
  • Un cont Google Cloud Console (pentru Google OAuth) sau acces echivalent la portal pentru dezvoltatori pentru alți furnizori.
  • Serverul HandyCafe rulează și este accesibil în rețeaua dvs.
  • Cel puțin un PC client conectat pentru a testa fluxul de conectare.

Cum funcționează fluxul dispozitivului OAuth în HandyCafe

Înainte de a intra în configurație, iată un rezumat al fluxului:

  1. Un client de la un computer client inactiv dă clic pe butonul de conectare socială (de exemplu, „Conectează-te cu Google”).
  2. Clientul trimite o cerere de pornire OAuth către server.
  3. Serverul contactează punctul final de autorizare a dispozitivului al furnizorului și primește un cod de dispozitiv, un cod de utilizator și o adresă URL de verificare.
  4. Clientul afișează un cod QR și codul de utilizator pe ecranul inactiv.
  5. Clientul scanează codul QR cu telefonul și se autentifică la furnizor.
  6. Serverul interogează furnizorul până când se finalizează autentificarea.
  7. Serverul creează o Solicitare de conectare OAuth care apare pe pagina Cereri.
  8. Un administrator sau casier aprobă cererea.
  9. Este creat un nou cont de membru (sau este conectat un cont existent) și clientul este autentificat.

Cum se configurează Google OAuth

Google este cel mai des folosit furnizor. Această secțiune acoperă fiecare pas de la crearea proiectului Google Cloud până la testarea primei autentificări.

Partea A: Creați acreditări Google Cloud

  1. Deschideți Google Cloud Console la https://console.cloud.google.com în browser.
  2. Creați un nou proiect sau selectați unul existent. Numiți-i ceva ușor de recunoscut, cum ar fi „HandyCafe OAuth”.
  3. Navigați la API-uri și servicii > ecran de consimțământ OAuth.
  4. Selectați Extern ca tip de utilizator (cu excepția cazului în care aveți o organizație Google Workspace și doriți doar intern).
  5. Completați câmpurile obligatorii: Numele aplicației („Numele dvs. de cafenea”), e-mailul de asistență pentru utilizatori și e-mailul de contact pentru dezvoltatori.
  6. Faceți clic pe Salvați și continuați prin secțiunile Scopes and Test Users. Nu este nevoie să adăugați lunete speciale. Domeniile implicite de e-mail și profil sunt suficiente.
  7. Navigați la API-uri și servicii > Acreditări.
  8. Faceți clic pe Creați acreditări > ID client OAuth.
  9. Pentru Tip aplicație, selectați Televizoare și dispozitive cu intrare limitată. Acest lucru este critic. HandyCafe utilizează fluxul de acordare a autorizației dispozitivului, care necesită acest tip de client specific.
  10. Introduceți un nume pentru client (de exemplu, „HandyCafe Device Flow”).
  11. Faceți clic pe Creați.
  12. Copiați Client ID și Client Secret din dialogul de confirmare. Păstrați-le în siguranță. Veți avea nevoie de ambele valori în secțiunea următoare.

Partea B: Configurați serverul HandyCafe

  1. Deschideți aplicația HandyCafe Server.
  2. Navigați la Setări folosind pictograma roată din bara laterală din stânga.
  3. Selectați fila OAuth.
  4. Activați comutatorul OAuth din partea de sus a paginii. Acest lucru permite autentificarea la nivel global pe toate computerele client.
  5. Găsiți rândul furnizorului Google din lista de furnizori.
  6. Activați comutatorul Google pentru a activa acest furnizor.
  7. Lipiți Client ID de la pasul 12 în câmpul Client ID.
  8. Lipiți Client Secret de la pasul 12 în câmpul Client Secret.
  9. Faceți clic pe Salvare pentru a aplica configurația.

Rezultatul așteptat: fila OAuth arată Google ca fiind activat cu datele de conectare completate. Setările sunt transmise tuturor clienților conectați.

Partea C: Testați fluxul de conectare

  1. Accesați un computer client conectat. Ecranul inactiv ar trebui să arate acum o secțiune de conectare socială cu un buton de conectare Google.
  2. Faceți clic pe butonul de conectare Google de pe ecranul de inactivitate a clientului.
  3. Clientul afișează un cod QR și un cod de utilizator (un șir alfanumeric scurt).
  4. Scanați codul QR cu telefonul. Deschide pagina Google de verificare a dispozitivului.
  5. Conectați-vă cu un cont Google și introduceți codul de utilizator când vi se solicită.
  6. Autorizați cererea.

Rezultat așteptat: Pe server, se aude un sunet de notificare și o nouă intrare apare pe pagina Solicitări. Solicitarea arată numele contului Google, adresa de e-mail și computerul client care a inițiat autentificarea.


Cum se aprobă o solicitare de conectare

Fiecare autentificare OAuth generează o solicitare care trebuie aprobată de un administrator sau casier înainte ca clientul să obțină acces.

  1. Când sosește o solicitare de autentificare, pe server se aude un sunet de notificare și o insignă apare pe pictograma paginii Cereri din bara laterală.
  2. Navigați la pagina Solicitări.
  3. Solicitarea în așteptare arată:
    • Numele furnizorului (de exemplu, Google).
    • Numele afișat de la furnizor (de exemplu, „John Smith”).
    • Adresă de e-mail (de exemplu, „john@example.com”).
    • PC-ul client care a inițiat cererea (nume gazdă sau nume afișat).
    • Marcaj de timp.
  4. Examinați detaliile cererii. Verificați dacă persoana de la computerul client se potrivește cu informațiile contului.
  5. Faceți clic pe Aprobare pentru a accepta cererea.

Rezultatul așteptat: dacă niciun cont de membru existent nu este conectat la această identitate OAuth, se creează automat un nou cont de membru. Sunt utilizate numele afișat și e-mailul de la furnizor. Clientul este conectat și computerul client trece de la ecranul inactiv la pagina online. Dacă un cont de membru a fost conectat anterior la această identitate OAuth, membrul existent este conectat direct.

Sfat: dacă solicitarea de conectare este suspectă (de exemplu, computerul este nesupravegheat sau cererea pare automată), dați clic pe Respinge. Clientul va vedea un mesaj „Acces refuzat” și poate încerca din nou.


Cum se configurează Facebook OAuth

  1. Deschideți Portalul pentru dezvoltatori Facebook la https://developers.facebook.com .
  2. Creați o nouă aplicație. Selectați tipul de aplicație Consumator.
  3. Navigați la pagina Setări > De bază a aplicației. Rețineți ID-ul aplicației și Secretul aplicației.
  4. Navigați la Adăugați produs și adăugați Autentificare Facebook pentru dispozitive.
  5. În setările Facebook Login for Devices, adăugați URI-urile dvs. de redirecționare dacă acest lucru este cerut de portal.
  6. Deschideți serverul HandyCafe și navigați la Setări > OAuth.
  7. Găsiți rândul furnizorului Facebook.
  8. Activați comutatorul Facebook.
  9. Lipiți App ID în câmpul Client ID.
  10. Lipiți Secretul aplicației în câmpul Secret client.
  11. Faceți clic pe Salvați.

Rezultat așteptat: Facebook apare ca un furnizor activat. Ecranele inactive ale clientului afișează un buton de conectare Facebook alături de orice alți furnizori activați.


Cum se configurează Discord OAuth

  1. Deschideți Portalul pentru dezvoltatori Discord la https://discord.com/developers/applications .
  2. Creați o nouă aplicație. Numele-i după cafeneaua ta.
  3. Navigați la secțiunea OAuth2 din bara laterală din stânga.
  4. Copiați Client ID și generați un Client Secret. Păstrați secretul în siguranță, deoarece Discord îl arată o singură dată.
  5. Deschideți serverul HandyCafe și navigați la Setări > OAuth.
  6. Localizați rândul furnizorului Discord (este dezactivat în mod implicit).
  7. Activați comutatorul Discord.
  8. Lipiți Client ID în câmpul Client ID.
  9. Lipiți Client Secret în câmpul Client Secret.
  10. Faceți clic pe Salvați.

Rezultatul așteptat: Discord este acum disponibil ca opțiune de conectare pe ecranele inactiv ale clientului.


Cum să permiteți autentificarea fără credit

În mod implicit, HandyCafe permite clienților autentificați cu OAuth să se conecteze chiar dacă nu au sold de portofel sau credit de timp. Puteți schimba acest comportament.

  1. Navigați la Setări > OAuth.
  2. Localizați comutatorul Permite autentificare fără credit.
  3. Dacă este activat (implicit), clienții care se autentifică prin OAuth se pot conecta indiferent de soldul lor. Un casier poate începe o sesiune postplătită pentru ei.
  4. Dacă este dezactivat, clienții trebuie să aibă fie un sold de portofel, fie un credit de timp pentru a se conecta. Clienții cu sold zero vor vedea un mesaj care le spune să viziteze casieria pentru a încărca.
  5. Faceți clic pe Salvați după ce ați schimbat comutatorul.

Rezultat așteptat: Comportamentul intră în vigoare imediat pentru noile solicitări de conectare. Sesiunile existente nu sunt afectate.


Cum se conectează o identitate OAuth la un membru existent

Dacă un client are deja un cont de membru (creat manual de un casier) și apoi se conectează prin OAuth pentru prima dată, procesul de aprobare poate lega identitatea OAuth la contul său existent.

  1. Când solicitarea de conectare OAuth ajunge pe pagina Solicitări, verificați dacă e-mailul corespunde unui membru existent.
  2. Dacă sistemul detectează o potrivire, caseta de dialog de aprobare va oferi conectarea identității OAuth la membrul existent în loc să creeze un cont nou.
  3. Aprobați cererea cu opțiunea de legătură selectată.

Rezultatul așteptat: Contul de membru existent obține un link OAuth. Conectările viitoare de la acest furnizor vor ocoli pasul de aprobare și vor conecta membrul direct (după prima aprobare).


Greșeli frecvente de evitat

  • Utilizarea unui tip de client OAuth greșit în Google Cloud Console. Trebuie să selectați „Televizoare și dispozitive cu intrare limitată” când creați ID-ul de client OAuth. Dacă selectați „Aplicație web” sau „Aplicație desktop”, fluxul de autorizare a dispozitivului nu va funcționa și clientul nu va obține un cod de dispozitiv.
  • Ați uitat să activați comutatorul OAuth global. Activarea furnizorilor individuali nu este suficientă. Comutatorul principal OAuth din partea de sus a paginii de setări OAuth trebuie să fie, de asemenea, activat.
  • Nu se aprobă solicitările de conectare. Autentificarea OAuth necesită aprobare explicită din partea serverului. Dacă nimeni nu monitorizează pagina de Cereri, clienții vor aștepta la nesfârșit ecranul inactiv. Luați în considerare desemnarea unui casier care să monitorizeze cererile în timpul orelor aglomerate.
  • Permiterea expirării codurilor de dispozitiv. Codurile de dispozitiv au o durată de viață limitată (de obicei, 5-10 minute). Dacă clientul durează prea mult să scaneze codul QR și să se autentifice, codul expiră și trebuie să o ia de la capăt. Sfătuiți clienții să scaneze prompt.
  • Inserarea acreditărilor cu spațiu alb suplimentar. Când copiați ID-ul clientului sau Secretul clientului din consola furnizorului, asigurați-vă că nu sunt incluse spații de început sau de sfârșit. Spațiile albe suplimentare vor cauza eșecuri de autentificare.
  • Am uitat să publicăm aplicația Google OAuth. Aplicațiile Google în modul „Testare” permit doar un număr limitat de utilizatori de testare. Pentru a permite oricărui client să se conecteze, trebuie să publicați aplicația prin pagina de ecran de consimțământ OAuth și să finalizați toți pașii necesari de verificare.
  • Amestecare ID-ul clientului și Secretul clientului. Acestea sunt două valori diferite. ID-ul clientului este public. Secretul clientului trebuie păstrat confidențial. Schimbarea lor va cauza eșecuri de autentificare.
  • Nu se configurează numele cafenelei. Numele cafenelei din setările dvs. HandyCafe este afișat pe ecranul inactiv al clientului în timpul fluxului OAuth. Un nume necompletat sau implicit pare neprofesional. Setează-ți numele cafenelei în Setări > General înainte de a activa OAuth.