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

# Autenticação

> Como autenticar nas APIs do DEVMOB

Todas as APIs do DEVMOB utilizam autenticação via **JWT (JSON Web Token)**.

## Fluxos de Autenticação

O DEVMOB suporta três fluxos principais:

### Google OAuth

Utilizado para login social. O frontend redireciona o usuário para o Google, que retorna um token. A API valida o token, cria uma sessão e emite tokens do DEVMOB.

### Email + Senha

Login tradicional com email e senha. Após autenticação, a API cria uma sessão e emite tokens do DEVMOB.

### OTP (One-Time Password)

Código temporário enviado ao email do usuário para verificação de identidade. Utilizado em diferentes contextos como recuperação de senha, verificação de email, entre outros.

## Par de Tokens

As rotas de autenticação retornam um par de tokens:

```json theme={null}
{
  "accessToken": "<jwt>",
  "refreshToken": "<jwt>"
}
```

* `accessToken` — usado no header `Authorization` das requisições. Tem validade curta.
* `refreshToken` — trocado pelo endpoint de refresh por um novo par quando o access token expira. Apenas o hash do refresh token ativo fica armazenado na sessão.

Cada token carrega os claims `sub` (identificador do usuário), `sid` (sessão), `aud` (audiência) e `type` (`access` ou `refresh`).

<Info>
  O DEVMOB valida a sessão server-side pelo `sid`. Isso permite revogar uma sessão antes da expiração do `accessToken`.
</Info>

## Utilizando o Token

Inclua o access token no header de todas as requisições:

```bash theme={null}
Authorization: Bearer <access-token>
```
