HandyCafe Docs
owner it-admin

Login OAuth

O HandyCafe suporta login social/OAuth para clientes usando o Device Authorization Grant (RFC 8628). Este fluxo e projetado para ambientes de quiosque e publicos onde clientes nao podem inserir credenciais com seguranca 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 Configuracoes > OAuth.

Fluxo de Autenticacao

O fluxo de autorizacao de dispositivo segue os seguintes passos:

  1. Cliente seleciona um provedor -- na tela de espera do cliente, o cliente toca em um botao de provedor (por exemplo, Google, Discord).
  2. Cliente envia solicitacao ao servidor -- o cliente notifica o servidor HandyCafe que um login OAuth foi iniciado.
  3. Servidor solicita um codigo de dispositivo -- o servidor contata o endpoint de autorizacao de dispositivo do provedor selecionado e recebe um codigo de dispositivo, codigo de usuario e URI de verificacao.
  4. Cliente exibe o codigo -- 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 autenticacao 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 nao concluiu a autenticacao.
    • Devagar -- consultas muito frequentes; o servidor reduz a velocidade.
    • Sucesso -- autenticacao concluida; token recebido.
    • Expirado -- o codigo do dispositivo expirou antes da autenticacao.
    • Erro -- ocorreu um erro inesperado.
  7. Servidor obtem informacoes do usuario -- 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 solicitacao de login aparece na Pagina de Solicitacoes. Um administrador ou operador revisa e aprova ou rejeita a solicitacao.
  9. Membro criado ou vinculado -- se aprovado, uma nova conta de membro e criada ou a identidade OAuth e vinculada a um membro existente.
  10. Sessao do cliente inicia -- o cliente recebe confirmacao e a sessao do cliente comeca.

Consideracoes de Seguranca

  • Credenciais nunca tocam o PC compartilhado. Clientes se autenticam apenas em seus dispositivos pessoais. Nenhuma senha ou token e inserido na maquina cliente.
  • Portao de aprovacao do administrador. Toda solicitacao de login OAuth deve ser aprovada por um administrador ou operador antes de uma sessao iniciar, prevenindo acesso nao autorizado.
  • Requisito de credito configuravel. Uma opcao "permitir login sem credito" pode ser habilitada ou desabilitada, controlando se clientes precisam de saldo positivo para fazer login via OAuth.

Configuracao

Os provedores OAuth sao configurados em Configuracoes > OAuth. Cada provedor requer suas proprias 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.