Segurança e acesso
Cookies host-only entre B2B, mediador, docs e blog; portal por token; expiração de convites; partes sem conta.
Objetivo
Explicar como autenticação e tokens isolam hosts e papéis.
Deixar claro que partes externas não criam conta: o portal é o canal.
Quando usar
Ao debugar sessão “perdida” entre desconflite.com e mediador.desconflite.com.
Quando um convite ou link de portal falha ou expirou.
Pré-requisitos
Hosts configurados (APP_URL, MEDIATOR_APP_URL, DOCS_URL, BLOG_URL).
Passo a passo na interface
- Cookies de sessão Supabase Auth são host-only — não use Domain=.desconflite.com. Login no B2B não autentica automaticamente no host do mediador e vice-versa.
- Org e mediador usam contas autenticadas nos respectivos hosts. Docs e blog são públicos.
- Partes acessam /portal/{token} pelo e-mail de convite, sem cadastro. O token identifica o participante; guarde o link como credencial.
- Convites (equipe, partes e mediador) expiram em 7 dias. Após expirar, a org/plataforma precisa reenviar ou regenerar.
- Cookie dc_active_org guarda a organização ativa no app B2B; logout limpa essa preferência.
- Redirect URLs do Supabase Auth devem incluir os hosts B2B e mediador (produção e *.local em dev).
Resultado esperado
Sessões isoladas por host; partes operando só com token válido; convites com janela de 7 dias.
Erros comuns e como resolver
Estou logado no site mas o mediador pede login de novo.
Comportamento esperado com cookies host-only. Faça login em mediador.desconflite.com.
Link do portal não abre / diz que expirou.
Peça reenvio do convite (7 dias). Não compartilhe o token; quem tiver o link age como aquela parte.
Parte pediu conta no Desconflite.
Partes não precisam de conta — só o link do portal. Contas são para org, mediador e plataforma.
