Skip to content

Autenticação (v1)

A API v1 usa tokens Bearer (JWT). Após o login, envie o token em toda chamada protegida:

Authorization: Bearer <access_token>

Base URL: https://api.fastgivr.com.br · prefixo /v1.

Resposta de token (retornada por register, login e refresh):

json
{
  "code": 200,
  "success": true,
  "data": {
    "access_token": "eyJ0eXAiOiJKV1Qi...",
    "token_type": "bearer",
    "expires_in": 3600,
    "user": { "id": 1, "name": "...", "email": "...", "phone": null, "email_verified_at": null }
  }
}

expires_in está em segundos — renove com refresh antes de expirar.


POST /v1/auth/register 🌐

Cria o usuário, dispara o código de verificação de e-mail e já devolve um token.

Entrada (corpo JSON):

CampoTipoRegras
namestringobrigatório, máx. 255
emailstringobrigatório, e-mail, único, máx. 255
passwordstringobrigatório, mín. 8 caracteres
password_confirmationstringobrigatório, igual a password
phonestringopcional, máx. 20

Saída: 201 com o envelope de token (data.access_token, data.user), message: "Cadastro realizado com sucesso." · 422 em validação.


POST /v1/auth/login 🌐

Entrada (corpo JSON):

CampoTipoRegras
emailstringobrigatório, e-mail
passwordstringobrigatório

Saída: 200 com o envelope de token. 401 + message: "Credenciais inválidas." quando incorreto.


GET /v1/auth/me 🔒

Entrada: header Authorization.

Saída: 200, chave user — o usuário autenticado com as suas organizações:

json
{
  "code": 200,
  "success": true,
  "user": {
    "id": 1, "name": "...", "email": "...",
    "organizations": [ { "id": 3, "uuid": "…", "name": "…", "status": "INACTIVE" } ]
  }
}

POST /v1/auth/logout 🔒

Entrada: header Authorization. Saída: 200, message: "Sessão encerrada com sucesso." (o token é invalidado).


POST /v1/auth/refresh 🔒

Entrada: header Authorization (token ainda válido ou dentro da janela de renovação). Saída: 200 com um envelope de token novo. 401 se não for possível renovar.


POST /v1/auth/forgot-password 🌐

Entrada (corpo JSON): email (obrigatório, e-mail, precisa existir). Saída: 200, message: "Código de recuperação enviado para o e-mail informado." Um código de 6 dígitos é enviado por e-mail (expira em 1 hora).


POST /v1/auth/reset-password 🌐

Entrada (corpo JSON):

CampoTipoRegras
emailstringobrigatório, e-mail, precisa existir
codestringobrigatório, exatamente 6 caracteres
passwordstringobrigatório, mín. 8 caracteres
password_confirmationstringobrigatório, igual a password

Saída: 200, message: "Senha redefinida com sucesso." · 422 + message: "Código de recuperação inválido ou expirado."


POST /v1/auth/verify-email 🌐

Entrada (corpo JSON): email (obrigatório, e-mail, precisa existir), code (obrigatório, exatamente 6 caracteres). Saída: 200, message: "E-mail verificado com sucesso." · 422 se o código for inválido/expirado.


POST /v1/auth/send-verification-code 🔒

Entrada: header Authorization (usa o e-mail do usuário autenticado). Saída: 200, message: "Código de verificação enviado com sucesso."


Fluxo recomendado

Qualquer chamada 🔒 com token ausente/expirado responde 401 — trate como sessão encerrada.