O que é o SSO EasyGoal?
O SSO (Single Sign-On) é o serviço de autenticação centralizado do ecossistema Easy Goal. Ele:- Autentica usuários usando Supabase Auth (email/senha + OAuth Google, GitHub, Azure/Microsoft)
- Emite um cookie
eg_session(JWT assinado) compartilhável em subdomínios.easygoal.com.br - Injeta
?eg_session=<token>nos redirects cross-domain para apps internos autorizados - Para apps externos: emite um
eg_tokentemporário trocável viaPOST /auth/verify - Recebe webhooks do app-front quando um pagamento é confirmado
Fluxo resumido
O parâmetro de redirect é
redirect_to (não redirect_uri). Use sempre redirect_to ao construir URLs de redirecionamento para o SSO. A URL deve estar cadastrada em Supabase → Auth → URL Configuration.Cookie eg_session
O eg_session é um JWT assinado com SSO_JWT_SECRET e setado em:
httpOnly: true— não acessível por JavaScriptdomain: .easygoal.com.brem produção — compartilhado entre todos os subdomínios
eg_session:
Não há claim
role ou discord_id no eg_session. A autorização de administrador é verificada no app-front via requireAdmin() que consulta o banco diretamente.Integração via @easygoal/packages/auth (recomendado)
Para conectar um app ao SSO, use o package do monorepo. Ele encapsula o handleAuthCallback, EgSessionProvider e hook useEgSession.
Veja o fluxo completo em Autenticação Cross-Domain.
Variáveis de Ambiente do SSO
Endpoints do SSO
Checklist do SSO
Configurar
SSO_JWT_SECRET para assinar o eg_sessionConfigurar
WEBHOOK_SECRET (= SSO_WEBHOOK_SECRET do app-front)Configurar
NEXT_PUBLIC_SUPABASE_URL e NEXT_PUBLIC_SUPABASE_ANON_KEYAdicionar URLs de redirect em Supabase → Auth → URL Configuration
Registrar URLs de callback em Supabase → Auth → Redirect URLs
Implementar
POST /api/webhook/payment com verificação HMAC SHA256Testar webhook com o botão “Testar Webhook” no admin do app-front