Skip to content

ADR-003: Login Google como Feature Opcional Pós-Lançamento

Status: Implementado Data (estimada): feature/40-login → master (commit a96e1a43) Tipo: ADR Retroativo


Contexto

O produto foi lançado sem autenticação. O fluxo de compartilhamento de repertório inicialmente era apenas por texto (WhatsApp). Com a demanda de sincronização entre dispositivos, folheto PDF e identificação do autor da sugestão, surgiu a necessidade de uma conta de usuário.

Decisão

Implementar Google OAuth 2.0 com PKCE como mecanismo de autenticação, mantendo o login como funcionalidade opcional — o app funciona completamente sem conta para leitura de músicas, repertórios locais e liturgia.

Alternativas Consideradas

  • Apple Sign-In — descartado como opção única (obrigatória na App Store apenas se usar login social, mas o Google é suficiente como opção)
  • E-mail + senha — descartado por complexidade de gerenciamento de credenciais no servidor
  • Login obrigatório — descartado para não criar barreira de entrada ao produto

Consequências

  • 🟢 Barreira zero para novos usuários — tudo funciona sem conta
  • 🟢 Sem necessidade de gerenciar senhas no servidor
  • 🟡 Dependência do Google OAuth — se o serviço cair, compartilhamento é bloqueado
  • 🟡 No web: credenciais em localStorage (sem HttpOnly) — risco aceitável para o contexto
  • 🟢 PKCE garante segurança sem client_secret no bundle do app