Nunciatura Provista

API Documentation V1

Login de Usuário

Autenticação via email e senha

Este endpoint é do tipo: Public

Descrição

Autentica um usuário no sistema com as seguintes funcionalidades:

  • Valida credenciais (email e senha)
  • Retorna token JWT válido para acesso aos endpoints protegidos
  • Token possui TTL de 180 minutos (3 horas)
  • Pode ser renovado através do endpoint de refresh
  • Retorna dados completos do usuário autenticado

Detalhes do Endpoint

VERBO

POST

URL BASE

http://api.provista.dev.nabrasil.org.br/v1

ENDPOINT

/auth/login

Cabeçalhos

Parâmetro Valor
Content-Type application/json

Campos Esperados

Campo Tipo Obrigatório Descrição
email string Sim E-mail do usuário. Deve ter formato válido.
password string Sim Senha do usuário.

Corpo da Requisição

{
  "email": "usuario@exemplo.com",
  "password": "MinhaSenh@123"
}

Observação: O corpo da requisição deve ser enviado como JSON no formato raw.

Respostas

Sucesso - 200

Exemplo com usuário Admin:

{
    "success": true,
    "message": "Login realizado com sucesso",
    "data": {
        "user": {
            "id": "9fd6b694-602a-461f-a052-c473f59bbcc6",
            "first_name": "Administrator",
            "last_name": "System",
            "email": "admin@nunciatura.com.br",
            "img_url": null,
            "initials": "AS",
            "email_verified_at": "2024-10-15T10:30:00.000000Z",
            "role": {
                "id": 1,
                "name": "Admin",
                "slug": "admin"
            }
        },
        "permissions": ["manage_users", "manage_roles", "manage_processes"],
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fake.token.exemplo",
        "token_type": "bearer",
        "expires_in": 10800
    }
}

Exemplo com usuário Informador:

{
    "success": true,
    "message": "Login realizado com sucesso",
    "data": {
        "user": {
            "id": "a7f8c9d0-1234-5678-9abc-def012345678",
            "first_name": "João",
            "last_name": "Silva",
            "email": "informador@nunciatura.com.br",
            "img_url": null,
            "initials": "JS",
            "email_verified_at": "2024-10-15T10:30:00.000000Z",
            "role": {
                "id": 2,
                "name": "Informador",
                "slug": "informador"
            },
            "informer": {
                "id": "b8e9f0a1-2345-6789-bcde-f01234567890",
                "blacklisted": false,
                "group": {
                    "id": "c9f0a1b2-3456-789a-cdef-012345678901",
                    "name": "Grupo 1 - Bispo em saída/transferido",
                    "color": "#3B82F6"
                },
                "category": {
                    "id": 1,
                    "name": "Consultor diocesano",
                    "description": "Consultor diocesano da diocese"
                }
            }
        },
        "permissions": ["view_questionnaires", "answer_questionnaires"],
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fake.token.informador",
        "token_type": "bearer",
        "expires_in": 10800
    }
}

Erro - 401 (Credenciais inválidas)

{
    "success": false,
    "message": "Email ou senha incorretos"
}

Condição: E-mail ou senha incorretos

Erro - 403 (Email não verificado)

{
    "success": false,
    "message": "Email não verificado. Por favor, confirme seu email antes de fazer login.",
    "email_verified": false
}

Condição: Email não foi verificado (se verificação de email estiver habilitada)

Erro - 403 (Usuário bloqueado)

{
    "success": false,
    "message": "Acesso negado. Seu usuário foi bloqueado. Entre em contato com o administrador.",
    "blacklisted": true
}

Condição: Informador está na lista negra (blacklisted = true). Acesso ao sistema bloqueado.

Erro - 422 (Dados de validação inválidos)

{
    "success": false,
    "message": "Dados de validação inválidos",
    "errors": {
        "email": [
            "O email é obrigatório."
        ],
        "password": [
            "A senha é obrigatória."
        ]
    }
}

Condição: Campos obrigatórios ausentes (email/senha) ou formato de e-mail inválido

Códigos de Resposta

Código Descrição
200 Login realizado com sucesso
401 Credenciais inválidas ou usuário não encontrado
403 Email não verificado
422 Dados de validação inválidos