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

  1. 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.
  2. Org e mediador usam contas autenticadas nos respectivos hosts. Docs e blog são públicos.
  3. Partes acessam /portal/{token} pelo e-mail de convite, sem cadastro. O token identifica o participante; guarde o link como credencial.
  4. Convites (equipe, partes e mediador) expiram em 7 dias. Após expirar, a org/plataforma precisa reenviar ou regenerar.
  5. Cookie dc_active_org guarda a organização ativa no app B2B; logout limpa essa preferência.
  6. 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.