You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Este card é responsável por fazer a tela de login funcionar de verdade.
Aqui o botão não é só enfeite: ele dispara o processo de autenticação, controla o estado da tela, gera e guarda a sessão, e informa à aplicação se o usuário está autenticado ou não.
Toda a lógica de controle de estado deve estar conectada — sem se preocupar com estilos, identidade visual ou beleza da tela.
Caution
Importante para QA e P.O.:
Esta etapa não deve ser avaliada por aparência. O foco é funcionalidade interna e comportamento dos estados.
É esperado que a tela seja feia, básica e possivelmente sem texto estilizado.
🎯 Objetivo:
Implementar os estados de controle de login, de forma reativa, clara e funcional, respeitando o fluxo esperado para o OAuth GitHub e o ciclo de sessão.
🧩 Estados obrigatórios e comportamentos esperados:
Estado
Quando aparece
O que deve acontecer visualmente
Idle
Estado inicial
Tela mostra botão de login normalmente
Loading
Após clicar no botão de login
Mostra indicador de carregamento ou texto simples
Authenticated
Quando o OAuth retorna com sucesso
Token armazenado, e app entende que está logado
Error
Quando o OAuth falha ou algo sai errado
Mensagem de erro visível (sem estilização obrigatória)
LoggedOut (op)
Quando o usuário clica em sair ou sessão é encerrada
Sessão limpa, estado volta para Idle
Important
O login só pode funcionar com GitHub. Nenhuma outra forma será permitida.
O token deve ser salvo com segurança (pode ser localStorage/secureStorage conforme plataforma).
🔄 Fluxo de estados esperados:
stateDiagram-v2
[*] --> Idle
Idle --> Loading : Clicou em "Login com GitHub"
Loading --> Authenticated : Retornou sucesso
Loading --> Error : Retornou erro
Authenticated --> LoggedOut : Clicou em sair
LoggedOut --> Idle
Loading
📦 Entregas obrigatórias:
Botão funcional que inicia o processo de OAuth com GitHub
Controle interno da tela reagindo a cada estado (Idle, Loading, etc)
Armazenamento seguro do token
Estrutura clara de como esses estados se conectam com o app
Logout funcional limpando tudo e voltando ao estado Idle
🧪 Critérios de Aceite (QA):
Teste esperado
Resultado desejado
Clicou no botão de login
Tela muda para Loading
OAuth retorna sucesso
Estado vira Authenticated, e token é salvo
OAuth retorna erro
Estado vira Error, mensagem aparece
App é recarregado após login
Sessão se mantém (usuário continua autenticado)
Clicou em logout
Sessão apagada, estado volta para Idle
Tentou login sem internet
Estado vira Error, com mensagem apropriada
📌 Lembretes:
Tip
Em caso de dúvida, voltar ao épico da Feature de Login.
Caso algo esteja mal definido, chamar o P.O. imediatamente.
Warning
Este card não trata de redirecionamento ou proteção de rotas — isso será feito no card seguinte.
Este card é responsável por fazer a tela de login funcionar de verdade.
Aqui o botão não é só enfeite: ele dispara o processo de autenticação, controla o estado da tela, gera e guarda a sessão, e informa à aplicação se o usuário está autenticado ou não.
Toda a lógica de controle de estado deve estar conectada — sem se preocupar com estilos, identidade visual ou beleza da tela.
Caution
Importante para QA e P.O.:
Esta etapa não deve ser avaliada por aparência. O foco é funcionalidade interna e comportamento dos estados.
É esperado que a tela seja feia, básica e possivelmente sem texto estilizado.
🎯 Objetivo:
Implementar os estados de controle de login, de forma reativa, clara e funcional, respeitando o fluxo esperado para o OAuth GitHub e o ciclo de sessão.
🧩 Estados obrigatórios e comportamentos esperados:
IdleLoadingAuthenticatedErrorLoggedOut(op)IdleImportant
O login só pode funcionar com GitHub. Nenhuma outra forma será permitida.
O token deve ser salvo com segurança (pode ser localStorage/secureStorage conforme plataforma).
🔄 Fluxo de estados esperados:
stateDiagram-v2 [*] --> Idle Idle --> Loading : Clicou em "Login com GitHub" Loading --> Authenticated : Retornou sucesso Loading --> Error : Retornou erro Authenticated --> LoggedOut : Clicou em sair LoggedOut --> Idle📦 Entregas obrigatórias:
Idle🧪 Critérios de Aceite (QA):
LoadingAuthenticated, e token é salvoError, mensagem apareceIdleError, com mensagem apropriada📌 Lembretes:
Tip
Em caso de dúvida, voltar ao épico da Feature de Login.
Caso algo esteja mal definido, chamar o P.O. imediatamente.
Warning
Este card não trata de redirecionamento ou proteção de rotas — isso será feito no card seguinte.