Setări OAuth
Categoria Setări OAuth configurează autentificarea prin device-flow, permițând membrilor să se conecteze la PC-urile client folosind conturile lor sociale existente. Aceasta implementează Device Authorization Grant (RFC 8628), conceput pentru scenarii de tip kiosk și medii publice unde utilizatorii se autentifică pe un dispozitiv separat (telefonul lor) în loc să introducă datele de autentificare pe un PC partajat.
Comutator Principal
Comutatorul Enable OAuth Login controlează întregul sistem OAuth. Când este dezactivat, nicio opțiune de login OAuth nu apare pe ecranele de blocare ale clienților. Când este activat, furnizorii configurați sunt disponibili pentru autentificarea membrilor.
Numele Cafenelei
Un nume de afișare pentru cafeneaua ta care este arătat în timpul contextului de autentificare OAuth. Acest lucru ajută membrii să confirme că se conectează la locația corectă atunci când văd solicitarea de autorizare pe telefonul lor.
Permite Login Fără Credit
Când este activată, membrilor li se permite să se conecteze prin OAuth chiar dacă soldul portofelului lor este zero. Acest lucru este util pentru cafenelele care doresc să permită navigarea gratuită sau unde membrii plătesc la tejghea în loc să folosească creditul preplătit.
Când este dezactivată, membrii trebuie să aibă un sold pozitiv în portofel pentru a finaliza un login OAuth.
Configurarea Furnizorului
HandyCafe suportă cinci furnizori OAuth. Fiecare furnizor este configurat independent:
| Câmp | Descriere |
|---|---|
| Comutator activare | Activează sau dezactivează login-ul Google |
| Client ID | ID-ul clientului OAuth 2.0 din proiectul tău Google Cloud Console |
| Client Secret | Secretul clientului corespunzător |
| Import JSON | Încarcă un fișier JSON de credențiale în format Google pentru a completa automat câmpurile Client ID și Client Secret |
| Câmp | Descriere |
|---|---|
| Comutator activare | Activează sau dezactivează login-ul Facebook |
| Client ID | ID-ul aplicației din aplicația ta Facebook Developer |
| Client Secret | Secretul aplicației din aplicația ta Facebook Developer |
Apple
| Câmp | Descriere |
|---|---|
| Comutator activare | Activează sau dezactivează login-ul Apple |
| Client ID | ID-ul serviciilor din contul tău Apple Developer |
| Client Secret | Secretul clientului generat (bazat pe JWT) |
X (Twitter)
| Câmp | Descriere |
|---|---|
| Comutator activare | Activează sau dezactivează login-ul X |
| Client ID | ID-ul clientului OAuth 2.0 din X Developer Portal |
| Client Secret | Secretul clientului corespunzător |
Discord
| Câmp | Descriere |
|---|---|
| Comutator activare | Activează sau dezactivează login-ul Discord |
| Client ID | ID-ul aplicației din Discord Developer Portal |
| Client Secret | Secretul clientului corespunzător |
Configurarea unui Furnizor
- Creează o aplicație de dezvoltator pe platforma furnizorului (linkuri către consola de dezvoltator a fiecărui furnizor sunt disponibile lângă câmpurile de configurare).
- Configurează aplicația pentru fluxul Device Authorization Grant unde este cazul.
- Copiază Client ID și Client Secret în câmpurile corespunzătoare din HandyCafe.
- Activează comutatorul furnizorului.
- Salvează setările.
Pentru Google, poți exporta credențialele JSON din Google Cloud Console și folosi butonul Import JSON pentru a completa automat ambele câmpuri.
Testarea Configurării
După ce ai salvat setările OAuth:
- Mergi la un PC client conectat la server.
- Pe ecranul de blocare al clientului, caută opțiunea de login OAuth.
- Selectează un furnizor configurat și inițiază login-ul.
- Un cod de dispozitiv și un cod QR vor apărea pe ecranul clientului.
- Scanează codul QR cu telefonul tău sau vizitează URL-ul afișat și introdu codul.
- Completează autentificarea pe telefonul tău.
- Serverul verifică tokenul și, în funcție de configurația ta, fie aprobă automat login-ul, fie trimite o solicitare către administrator pentru aprobare.
- Odată aprobat, contul membrului este creat sau legat și sesiunea clientului începe.
Pentru procesul complet de login prin device-flow, vezi documentația OAuth Login.