SSO Logto — "Entrar com Tokia"
Como funciona o login Single Sign-On no chat.usetokia.com: 1 clique e você entra usando a mesma conta do dashboard usetokia.com.
Por quê SSO em vez de email/senha?
- 1 conta só — mesma identidade no dashboard, no chat, e em apps futuros (mobile, integrações). Quando atualizar email/senha, vale pra todos.
- Sem senha extra pra lembrar — você usa Google OAuth (ou outro provedor configurado no Logto). Zero password fatigue.
- Sessão revogável central — se perder dispositivo, logout no Logto tira acesso de todos os Apps Tokia simultaneamente.
- Auditável — Logto loga cada sign-in com IP/timestamp, auth-admin.toolpad.cloud.
Como usar
- Acesse chat.usetokia.com.
- Na tela de login, clique no botão verde "Entrar com Tokia"(abaixo do form email/senha).
- Você é redirecionado pra
auth.toolpad.cloud(Logto IT Booster). Se já tá logado no dashboard (cookie ativo), entra automaticamente. Se não, faz sign-in normal. - Logto redireciona de volta pra
chat.usetokia.com/oauth/openid/callbacke você cai dentro do chat já logado. - Primeira vez: aparece modal pedindo sua API key Tokia (formato
sk-...). Cola e salva — fica encrypted no servidor.
Detalhes técnicos
OpenID Connect (OIDC)
- Issuer:
https://auth.toolpad.cloud/oidc - Client ID:
42p85x2zhqhqh0ee3xeku(app "Tokia Chat" no Logto) - Scope:
openid profile email - Callback URLs:
localhost:3080,chat-dev.usetokia.com,chat.usetokia.com(todas com/oauth/openid/callback) - Grant type: Authorization Code com PKCE
Primeira sign-in cria conta automática
Quando você faz primeiro SSO no chat, LibreChat upserta um user no MongoDB do chat com os claims do Logto (sub, email, name). Isso é separado do tokia.profiles do gateway — são 2 stores distintos pra propósitos diferentes:
tokia.profiles(Postgres) — saldo BRL, billing, API keyschat.users(MongoDB) — conversas, prompts, agentes, preferences
O sub Logto é a chave que liga ambos.
Acesso público (desde 2026-05-20)
Signups SSO + email/senha local estão abertos pra qualquer email. Anti-abuso continua via rate limit (120 req/min por API key, Sprint 325), ban 24h após violations (LibreChat default), e hard cap de saldo (sem saldo BRL = sem chat). Em fases anteriores (Sprint 314-481) usamos allowedDomains ['usetokia.com', 'itbooster.com.br'] como beta gating — agora removido.
Problemas?
Veja troubleshooting ("Cliquei 'Entrar com Tokia' e voltei pra mesma tela" cobre os bugs comuns).