> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Next.js: início rápido da autenticação Didit

> Planeje com Didit uma sessão de autenticação no servidor em Next.js com callbacks PKCE, cookies HttpOnly e autorização em requisições protegidas.

> [!WARNING]
>
> A autenticação é nova: `@didit-protocol/auth-nextjs` e o verificador de servidor principal dependem da versão. Nenhum caminho de importação de middleware, nome de cookie ou formato de retorno de `auth()` são definidos antes do lançamento do pacote. Os tokens de acesso são JWTs ES256: verifique-os com o JWKS da sua aplicação e chame `GET session/` quando precisar saber se a sessão ainda está ativa.

## Mantenha a sessão no seu servidor

Use o fluxo hospedado descrito no [guia de início rápido de JavaScript](https://docs.didit.me/pt-br/authentication/quickstarts/javascript.md), com as seguintes alterações para uma aplicação renderizada no servidor. Os nomes das suas rotas são rotas da aplicação que você implementa, não endpoints da API da Didit.

| Rota da aplicação | Responsabilidade |
| - | - |
| Iniciar login | Gere o state e o PKCE S256; armazene a transação em uma sessão de servidor de curta duração; redirecione para `{origin}/sign-in`. |
| Callback registrado | Valide o state e a expiração, consuma a transação uma única vez, troque o código em `token/` e armazene os tokens no servidor. |
| Página protegida ou rota de API | Leia o cookie da sua sessão e verifique o token de acesso do usuário final com o seu JWKS, ou em `session/` quando a revogação precisar ser imediata; autorize a ação solicitada para essa pessoa. |
| Renovação | Serialize a renovação por sessão, chame `token/` e substitua o par de tokens de forma atômica. |
| Logout | Mutação protegida contra CSRF que revoga `session/` e limpa a sessão da aplicação. |

Envie apenas uma referência aleatória da sessão da aplicação em um cookie `Secure`, `HttpOnly`, `SameSite=Lax` com um caminho de escopo restrito. Use uma expiração adequada e troque a referência após o login. Não exponha o refresh token da Didit em props renderizadas, componentes de cliente ou armazenamento do navegador. Use `Cache-Control: no-store` nas respostas de token e de callback.

Não dependa apenas de uma verificação no layout ou no middleware: autorize em cada acesso a dados e em cada mutação. Proteja contra CSRF as mutações autenticadas por cookie. Permita apenas destinos pós-login configurados, nunca uma URL `returnTo` arbitrária vinda da query string.

## Prévia do lançamento do pacote

O pacote planejado adiciona middleware, `auth()` no servidor, uma rota de callback e suporte a cookies HttpOnly para renderização no servidor. A entrada `/server` principal deve fornecer `verifyToken()` com JWKS em cache. Aguarde as exportações confirmadas da versão antes de usar esses símbolos. Até lá, verifique os tokens você mesmo com qualquer biblioteca JOSE, conforme descrito em [tokens e JWKS](https://docs.didit.me/pt-br/authentication/tokens-and-jwks.md).

## Conecte os outros produtos

Crie sessões de verificação e emita tokens de monitoramento com escopo no servidor. Gere `vendor_data` do mapeamento de pessoa validado. Retorne ao navegador apenas a URL de uma sessão de verificação ou um token de SDK de curta duração. Mantenha `DIDIT_API_KEY` fora das variáveis de ambiente públicas.

Use o [SDK de verificação web](https://docs.didit.me/pt-br/integration/web-sdks/javascript-sdk.md) existente para a verificação e o [guia de envio de transações](https://docs.didit.me/pt-br/transaction-monitoring/sdk-transaction-submission.md) para o monitoramento. Nenhum dos dois é um gerenciador de sessões do Authentication.

Teste a repetição de callback, state incorreto, state expirado, condições de corrida na renovação, sessões revogadas, rejeição de CSRF e logout antes do lançamento. Consulte [tokens e JWKS](https://docs.didit.me/pt-br/authentication/tokens-and-jwks.md) para o contrato de validação.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.