HandyCafe Docs
owner it-admin

Login OAuth

O HandyCafe suporta login social/OAuth para clientes usando o Device Authorization Grant (RFC 8628). Este fluxo é projetado para ambientes de quiosque e públicos onde clientes não podem inserir credenciais com segurança em PCs compartilhados.

Provedores Suportados

Provedor Endpoint
Google oauth2.googleapis.com
Facebook graph.facebook.com/v21.0
Apple appleid.apple.com
X (Twitter) api.x.com/2/oauth2
Discórdia discord.com/api/oauth2

Cada provedor pode ser individualmente habilitado ou desabilitado em Configurações > OAuth.

Fluxo de Autenticação

O fluxo de autorização de dispositivo segue os seguintes passos:

  1. Cliente seleciona um provedor -- na tela de espera do cliente, o cliente toca em um botão de provedor (por exemplo, Google, Discord).
  2. Cliente envia solicitação ao servidor -- o cliente notifica o servidor HandyCafe que um login OAuth foi iniciado.
  3. Servidor solicita um código de dispositivo -- o servidor contata o endpoint de autorização de dispositivo do provedor selecionado e recebe um código de dispositivo, código de usuário e URI de verificação.
  4. Cliente exibe o código -- o cliente mostra o user_code e verification_uri ao cliente, normalmente renderizado como um QR code para facilitar a leitura.
  5. Cliente se autentica no celular -- o cliente escaneia o QR code com seu dispositivo pessoal (celular ou tablet) e conclui a autenticação no site do provedor.
  6. Servidor consulta o token -- o servidor consulta periodicamente o provedor por um token. Os estados da consulta incluem:
    • Pendente -- o cliente ainda não concluiu a autenticação.
    • Devagar -- consultas muito frequentes; o servidor reduz a velocidade.
    • Sucesso -- autenticação concluída; token recebido.
    • Expirado -- o código do dispositivo expirou antes da autenticação.
    • Erro -- ocorreu um erro inesperado.
  7. Servidor obtém informações do usuário -- em caso de sucesso, o servidor usa o token para buscar o perfil do cliente no provedor, incluindo provider_uid, email, name e avatar_url.
  8. Administrador aprova ou rejeita -- a solicitação de login aparece na Página de Solicitações. Um administrador ou operador revisa e aprova ou rejeita a solicitação.
  9. Membro criado ou vinculado -- se aprovado, uma nova conta de membro é criada ou a identidade OAuth é vinculada a um membro existente.
  10. Sessão do cliente inicia -- o cliente recebe confirmação e a sessão do cliente começa.

Considerações de Segurança

  • Credenciais nunca tocam o PC compartilhado. Clientes se autenticam apenas em seus dispositivos pessoais. Nenhuma senha ou token é inserido na máquina cliente.
  • Portão de aprovação do administrador. Toda solicitação de login OAuth deve ser aprovada por um administrador ou operador antes de uma sessão iniciar, prevenindo acesso não autorizado.
  • Requisito de crédito configurável. Uma opção "permitir login sem crédito" pode ser habilitada ou desabilitada, controlando se clientes precisam de saldo positivo para fazer login via OAuth.

Configuração

Os provedores OAuth são configurados em Configurações > OAuth. Cada provedor requer suas próprias credenciais de cliente (client ID e client secret) obtidas do console de desenvolvedor do provedor. Habilite apenas os provedores que deseja oferecer aos seus clientes.