Desenvolver uma API RESTful para autenticação de usuários, que permita operações de cadastro (sign up), autenticação (sign in) e recuperação de informações do usuário.
Especificações Técnicas:
- Formato de Comunicação:
- Todos os endpoints devem aceitar e retornar apenas dados no formato JSON.
- Retorno JSON para situações de endpoint não encontrado.
- Persistência de Dados:
- Armazenamento persistente de dados do usuário.
- Respostas de Erro:
-
Formato padrão:
{ mensagem: mensagem de erro }
- Input:
- Output (sucesso):
-
E-mail já cadastrado:
{ mensagem: E-mail já existente }
- Input:
- Output (sucesso):
E-mail não cadastrado ou senha incorreta:
{ mensagem: Usuário e/ou senha inválidos }
Senha incorreta: status 401 com:
{ mensagem: Usuário e/ou senha inválidos } |
- Requisição: Header Authentication com valor Bearer {token}
-
Token inválido:
{ mensagem: Não autorizado }
-
Token expirado (mais de 30 minutos):
{ mensagem: Sessão inválida }
- Persistência de dados.
- Sistema de build com gerenciamento de dependências.
- Task runner para build.
- Padronização de estilo (ex: jsHint/jsLint).
- Framework: Express, Hapi, ou similar.
- JWT como token.
- Testes unitários.
- Criptografia hash na senha e token.
- Repositório no GitHub.
- Hospedagem: Heroku, Google Cloud, AWS, ou similar.
- 72 horas
POST: /auth/signin
POST: /auth/signup
GET: /users/me/:id
BaseURL: https://escribo-processo-seletivo-node.vercel.app/
{
"name": "user-name",
"email": "[email protected]",
"password": "12223434",
"cellphones": [
{
"number": "123456789",
"ddd": "11"
}
]
}
{
"email": "[email protected]",
"password": "12345678"
}
📁 Back-end
🔋 Versionamento e Deploy
⚙️ Configuranções e Instalações
Clone do Projeto
$ git clone https://github.com/renovatt/escribo-processo-seletivo-node.git
Variáveis de ambiente
PORT=
JWT_SECRET=
DATABASE_URL=
Instalando as dependências
$ npm install
Iniciando o projeto
$ npm run dev
Como contribuir?
- Você pode dar suporte me seguindo aqui no GitHub
- Dando uma estrela no projeto
- Criar uma conexão comigo no linkedin fazendo parte da minha networking e curtir o meu projeto.