0% acharam este documento útil (0 voto)
2 visualizações3 páginas

Documentacao API

O documento descreve os endpoints de autenticação e gerenciamento de usuários, incluindo login, cadastro e listagem de pessoas. O login gera um token JWT para autenticação, enquanto o cadastro permite criar novos usuários com validações específicas. Os endpoints de listagem e cadastro de pessoas requerem autenticação via token JWT, que expira em 2 horas.

Enviado por

joaopmmoura27
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações3 páginas

Documentacao API

O documento descreve os endpoints de autenticação e gerenciamento de usuários, incluindo login, cadastro e listagem de pessoas. O login gera um token JWT para autenticação, enquanto o cadastro permite criar novos usuários com validações específicas. Os endpoints de listagem e cadastro de pessoas requerem autenticação via token JWT, que expira em 2 horas.

Enviado por

joaopmmoura27
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

# Documentação dos Endpoints de Autenticação e Usuários

---

## 1. Login

- **Endpoint:** `POST /auth/login`


- **Descrição:** Realiza autenticação do usuário. Retorna um token JWT para ser usado
nas requisições autenticadas.

### Body JSON esperado:


```json
{
"email": "usuario@[Link]",
"senha": "senha123"
}

Resposta de sucesso:

{
"token": "JWT_TOKEN_AQUI"
}

Lógica:
Recebe email e senha.
Autentica usando o serviço do Spring Security.
Retorna um token JWT (válido por 2 horas) se as credenciais estiverem corretas.
O token deve ser enviado no header:

Authorization: Bearer JWT_TOKEN_AQUI

2. Cadastro
Endpoint: POST /auth/register
Descrição: Cria um novo usuário no sistema.

Body JSON esperado:

{
"email": "usuario@[Link]",
"senha": "senha123",
"nome": "Nome Completo",
"cpf": "00011122233",
"telefone": "11999999999",
"tipoConta": "CUIDADOR"
}

Valores possíveis para tipoConta :


"ADMIN"
"CUIDADOR"
"DEPENDENTE"
"INDEPENDENTE"
Obs: maiúsculo ou minúsculo, ambos aceitos.

Resposta de sucesso:

{
"idUsuario": 1,
"idPessoa": 1,
"nome": "Nome Completo",
"tipoConta": "CUIDADOR",
"cpf": "00011122233",
"telefone": "11999999999",
"ativo": true
}

Validações:
Não permite cadastro de email já existente.
A senha é armazenada de forma criptografada (BCrypt).

3. Listar Pessoas
Endpoint: GET /pessoas
Descrição: Lista todas as pessoas cadastradas (precisa de autenticação).

Resposta:

[
{
"id": 1,
"nome": "Pessoa 1",
"cpf": "00011122233",
"telefone": "11999999999"
// outros campos se existirem
}
]

4. Cadastrar Pessoa
Endpoint: POST /pessoas
Descrição: Cadastra uma nova pessoa (precisa de autenticação).

Body JSON esperado:

{
"nome": "Pessoa 2",
"cpf": "99988877766",
"telefone": "11988887777"
// outros campos se existirem
}
Resposta:
Objeto da pessoa cadastrada.

5. Lógica de Login (Frontend)


Enviar POST para /auth/login com email/senha.
Guardar o token retornado.
Em toda requisição autenticada (ex: /pessoas ), enviar header:

Authorization: Bearer <token>

O token expira em 2 horas.


Se receber resposta 401, pedir novo login.

Observações
Os endpoints de login e cadastro não exigem autenticação.
Os demais endpoints exigem o token JWT.
O tipo de conta ( tipoConta ) define as permissões do usuário.
O backend usa JWT (HS256) para autenticação stateless.

Você também pode gostar