Permite que a plataforma do cliente, que jÔ autenticou o usuÔrio do seu lado, abra uma sessão
para ele na Ensinio sem pedir login e senha.
O endpoint exige:
Authorization: Bearer {token}Content-Type: application/json
Recurso do plano necessƔrio:
- Public API ā Generate Session Code
Como funciona
sequenceDiagram
actor U as UsuƔrio
participant E as Sistema externo
participant B as Ensinio (API)
participant F as Ensinio (front)
U->>E: login na plataforma do cliente
E->>B: POST /public/api/v1/auth/session-code<br/>Bearer {token da integração} + { email }
B->>B: valida integração, usuÔrio e elegibilidade
B-->>E: { code, expires_in, redirect_url }
E-->>U: redirect para redirect_url
U->>F: GET /auth-token/token?token={code}
F->>B: POST /api/v1/auth-factory-token { token }
B->>B: consome o código (uso único)
B-->>F: sessão + token do usuÔrio
F-->>U: dentro da plataforma, autenticado
O sistema externo só precisa implementar os dois primeiros passos: chamar o endpoint e
redirecionar para o redirect_url que vier na resposta. O resto acontece dentro da Ensinio.
šļø Emitir código
POST /auth/session-code
Body
{
"email": "[email protected]"
}200
{
"code": "hRk2pQ9vTz8mXn4LbW1cJyF6sD0gA3eUoI7tZqPr",
"expires_in": 120,
"expires_at": "2026-09-22T14:32:10-03:00",
"redirect_url": "https://sua-plataforma.ensinio.com/auth-token/token?token=hRk2pQ9vTz8mXn4LbW1cJyF6sD0gA3eUoI7tZqPr"
}Redirecione o browser do usuÔrio para redirect_url exatamente como veio. Não é preciso montar
a URL: o domĆnio do front nĆ£o Ć© o mesmo da API, e devolvĆŖ-la pronta evita o erro mais comum da
integração.
Exemplo
curl -X POST https://sua-plataforma.ensinio.cloud/public/api/v1/auth/session-code \
-H "Authorization: Bearer {SEU_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]"}'š Garantias do código
| Regra | Como Ć© cumprida |
|---|---|
| ImprevisĆvel | 40 caracteres aleatórios criptogrĆ”ficos |
| NĆ£o carrega dado sensĆvel | Ć© opaco; nada do usuĆ”rio pode ser lido a partir dele |
| Validade curta | 120 segundos |
| Uso único | invalidado no próprio resgate, por escrita condicional no banco |
| Não recuperÔvel a partir do banco | a Ensinio guarda apenas o hash SHA-256 |
O code aparece uma Ćŗnica vez, nesta resposta. NĆ£o hĆ” endpoint para consultĆ”-lo depois.
Perdeu, emita outro ā cada chamada gera um código novo e nĆ£o reaproveita o anterior.
š« Quem nĆ£o pode ser autenticado
- O usuÔrio System do tenant, em nenhuma circunstância.
- UsuÔrios que não têm acesso à plataforma.
- Qualquer usuƔrio, enquanto o tenant estiver bloqueado.
Não bloqueiam a emissão: e-mail não verificado e conta desativada. Verificar e-mail não é
obrigatório na plataforma, e quem chama a rota jÔ autenticou o usuÔrio do lado dele.
Respostas de erro
| Código | Quando |
|---|---|
401 | token da integração ausente ou invÔlido |
403 | recurso Public API ā Generate Session Code nĆ£o habilitado no plano |
404 | usuĆ”rio nĆ£o encontrado ou nĆ£o elegĆvel |
422 | email ausente ou malformado |
429 | limite de requisiƧƵes do plano excedido |
O 404 Ʃ deliberadamente o mesmo para e-mail inexistente e usuƔrio System.
DiferenciĆ”-los transformaria o endpoint em ferramenta para descobrir quais e-mails existem na
base do tenant ā e quais deles sĆ£o privilegiados. Para provisionar um usuĆ”rio que ainda nĆ£o
existe, use POST /users antes.
