HandyCafe Docs
owner it-admin

Connexion OAuth

HandyCafe prend en charge la connexion sociale/OAuth pour les clients utilisant le Device Authorization Grant (RFC 8628). Ce flux est conçu pour les kiosques et les environnements publics où les clients ne peuvent pas saisir leurs informations d'identification en toute sécurité sur des PC partagés.

Fournisseurs pris en charge

Fournisseur Point de terminaison
Google oauth2.googleapis.com
Facebook graph.facebook.com/v21.0
Pomme appleid.apple.com
X (Twitter) api.x.com/2/oauth2
Discorde discord.com/api/oauth2

Chaque fournisseur peut être activé ou désactivé individuellement dans Paramètres > OAuth.

Flux d'authentification

Le flux d'autorisation de l'appareil passe par les étapes suivantes :

  1. Le client sélectionne un fournisseur : sur l'écran de veille du client, le client appuie sur le bouton d'un fournisseur (par exemple, Google, Discord).
  2. Le client envoie une requête au serveur : le client informe le serveur HandyCafe qu'une connexion OAuth a été initiée.
  3. Le serveur demande un code d'appareil : le serveur contacte le point de terminaison d'autorisation d'appareil du fournisseur sélectionné et reçoit un code d'appareil, un code utilisateur et un URI de vérification.
  4. Le client affiche le code : le client montre le user_code et le verification_uri au client, généralement affichés sous forme de code QR pour une numérisation facile.
  5. Le client s'authentifie sur son téléphone : le client scanne le code QR avec son appareil personnel (téléphone ou tablette) et complète l'authentification sur le site Web du fournisseur.
  6. Le serveur interroge le jeton : le serveur interroge périodiquement le fournisseur pour un jeton. Les états du sondage incluent :
    • En attente : le client n'a pas encore terminé son authentification.
    • SlowDown -- interrogation trop fréquente ; le serveur recule.
    • Succès -- authentification terminée ; jeton reçu.
    • Expiré : le code de l'appareil a expiré avant l'authentification.
    • Erreur : une erreur inattendue s'est produite.
  7. Le serveur récupère les informations utilisateur : en cas de succès, le serveur utilise le jeton pour récupérer le profil du client auprès du fournisseur, notamment provider_uid, email, name et avatar_url.
  8. L'administrateur approuve ou rejette -- la demande de connexion apparaît sur la page Demandes. Un administrateur ou un caissier examine et approuve ou rejette la demande.
  9. Membre créé ou lié -- s'il est approuvé, un nouveau compte de membre est créé ou l'identité OAuth est liée à un membre existant.
  10. La session client démarre  : le client reçoit une confirmation et la session client commence.

Considérations de sécurité

  • Les informations d'identification ne touchent jamais le PC partagé. Les clients s'authentifient uniquement sur leurs appareils personnels. Aucun mot de passe ou jeton n'est saisi sur la machine client.
  • Porte d'approbation de l'administrateur. Chaque demande de connexion OAuth doit être approuvée par un administrateur ou un caissier avant le début d'une session, empêchant ainsi tout accès non autorisé.
  • Exigence de crédit configurable. Une option « Autoriser la connexion sans crédit » peut être activée ou désactivée, contrôlant si les clients ont besoin d'un solde positif pour se connecter via OAuth.

##Configuration

Les fournisseurs OAuth sont configurés dans Paramètres > OAuth. Chaque fournisseur nécessite ses propres informations d'identification client (ID client et secret client) obtenues à partir de la console de développement du fournisseur. Activez uniquement les fournisseurs que vous souhaitez proposer à vos clients.