Skip to main content

Registro e Autenticação

Esta seção detalha os endpoints para registro de novos usuários e autenticação de usuários existentes na plataforma FitLocus.

Registro de Usuário

Endpoint

Este endpoint permite o registro de novos usuários na plataforma.

Parâmetros da Requisição

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

Exemplo de Requisição

Resposta de Sucesso

Código: 201 Created

Respostas de Erro

Código: 400 Bad Request
Código: 409 Conflict

Login com Email e Senha

Endpoint

Este endpoint permite a autenticação de usuários existentes utilizando email e senha.

Parâmetros da Requisição

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 400 Bad Request
Código: 404 Not Found

Login com Firebase

Endpoint

Este endpoint permite a autenticação de usuários utilizando um token do Firebase Authentication.

Parâmetros da Requisição

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 400 Bad Request
Código: 404 Not Found

Renovação de Token

Endpoint

Este endpoint permite renovar um token JWT antes que expire.

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized

Logout

Endpoint

Este endpoint invalida o token JWT atual, realizando o logout do usuário.

Cabeçalhos da Requisição

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 401 Unauthorized

Recuperação de Senha

Endpoint para Solicitar Recuperação

Este endpoint inicia o processo de recuperação de senha, enviando um email com um link para redefinição.

Parâmetros da Requisição

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 404 Not Found

Endpoint para Redefinir Senha

Este endpoint permite redefinir a senha utilizando o token recebido por email.

Parâmetros da Requisição

O corpo da requisição deve conter um objeto JSON com os seguintes campos:

Exemplo de Requisição

Resposta de Sucesso

Código: 200 OK

Respostas de Erro

Código: 400 Bad Request
Código: 400 Bad Request

Implementação no Frontend

Registro de Usuário

Login

Login com Firebase

Logout

Considerações de Segurança

  1. Validação de Dados: Todos os dados de entrada são validados tanto no frontend quanto no backend para prevenir injeção de dados maliciosos.
  2. Proteção de Senhas: As senhas são armazenadas utilizando o algoritmo BCrypt para hash seguro.
  3. HTTPS: Todas as comunicações com a API devem ser realizadas através de HTTPS para proteger dados sensíveis durante a transmissão.
  4. Tokens JWT: Os tokens JWT têm validade limitada (24 horas) e são assinados com uma chave secreta.
  5. Rate Limiting: A API implementa limitação de taxa para prevenir ataques de força bruta em endpoints de autenticação.
  6. Confirmação de Email: Para registros via aplicativo móvel, é enviado um email de confirmação para verificar a identidade do usuário.
  7. Recuperação de Senha: O processo de recuperação de senha utiliza tokens de uso único com validade limitada.

Troubleshooting

Problemas Comuns

  1. “Email já registrado”: Tente fazer login com o email ou utilize a funcionalidade de recuperação de senha.
  2. “Credenciais inválidas”: Verifique se o email e senha estão corretos. Caso tenha esquecido a senha, utilize a funcionalidade de recuperação.
  3. “Token inválido ou expirado”: Faça login novamente para obter um novo token.
  4. “Usuário não encontrado”: Verifique se o email está correto ou registre-se como um novo usuário.

Depuração

Para depurar problemas de autenticação:
  1. Verifique os logs do console para mensagens de erro detalhadas
  2. Utilize ferramentas como o Postman para testar os endpoints diretamente
  3. Verifique se o token JWT está sendo enviado corretamente no cabeçalho Authorization
  4. Decodifique o token JWT em jwt.io para verificar as claims