HandyCafe Docs
owner it-admin

Accesso OAuth

HandyCafe supporta l'accesso social/OAuth per i clienti utilizzando il Device Authorization Grant (RFC 8628). Questo flusso e progettato per ambienti kiosk e pubblici dove i clienti non possono inserire in sicurezza le credenziali su PC condivisi.

Provider Supportati

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

Ogni provider puo essere abilitato o disabilitato individualmente in Impostazioni > OAuth.

Flusso di Autenticazione

Il flusso di autorizzazione del dispositivo procede attraverso i seguenti passaggi:

  1. Il cliente seleziona un provider -- sulla schermata di inattivita del client, il cliente tocca un pulsante provider (ad esempio Google, Discord).
  2. Il client invia la richiesta al server -- il client notifica il server HandyCafe che e stato avviato un accesso OAuth.
  3. Il server richiede un codice dispositivo -- il server contatta l'endpoint di autorizzazione dispositivo del provider selezionato e riceve un codice dispositivo, un codice utente e un URI di verifica.
  4. Il client mostra il codice -- il client mostra il user_code e il verification_uri al cliente, tipicamente renderizzato come codice QR per una facile scansione.
  5. Il cliente si autentica sul telefono -- il cliente scansiona il codice QR con il proprio dispositivo personale (telefono o tablet) e completa l'autenticazione sul sito web del provider.
  6. Il server interroga per il token -- il server interroga periodicamente il provider per un token. Gli stati di interrogazione includono:
    • Pending -- il cliente non ha ancora completato l'autenticazione.
    • SlowDown -- interrogazioni troppo frequenti; il server rallenta.
    • Success -- autenticazione completata; token ricevuto.
    • Expired -- il codice dispositivo e scaduto prima dell'autenticazione.
    • Error -- si e verificato un errore imprevisto.
  7. Il server recupera le informazioni utente -- in caso di successo, il server utilizza il token per recuperare il profilo del cliente dal provider, inclusi provider_uid, email, name e avatar_url.
  8. L'admin approva o rifiuta -- la richiesta di accesso appare nella Pagina Richieste. Un admin o cassiere esamina e approva o rifiuta la richiesta.
  9. Membro creato o collegato -- se approvata, viene creato un nuovo account membro o l'identita OAuth viene collegata a un membro esistente.
  10. La sessione client inizia -- il client riceve la conferma e la sessione del cliente inizia.

Considerazioni sulla Sicurezza

  • Le credenziali non toccano mai il PC condiviso. I clienti si autenticano solo sui propri dispositivi personali. Nessuna password o token viene inserito sulla macchina client.
  • Cancello di approvazione admin. Ogni richiesta di accesso OAuth deve essere approvata da un admin o cassiere prima dell'avvio di una sessione, prevenendo accessi non autorizzati.
  • Requisito di credito configurabile. Un'opzione "consenti accesso senza credito" puo essere abilitata o disabilitata, controllando se i clienti necessitano di un saldo positivo per accedere tramite OAuth.

Configurazione

I provider OAuth vengono configurati in Impostazioni > OAuth. Ogni provider richiede le proprie credenziali client (client ID e client secret) ottenute dalla console sviluppatori del provider. Abilita solo i provider che vuoi offrire ai tuoi clienti.