Giter VIP home page Giter VIP logo

desafio_tecnico_2's Introduction

O Desafio

O desafio consistia em cria uma api de autenticação de usuários utilizando JavaScript.

As Tecnologias utilizadas foram:

  • NodeJS v18.16.0
  • Express v4.18.2

Considerações ‼️

  • Peço encarecidamente paciência ao realizar a primeira requisição, pois a API está hospedada no Render, o servidor provavelmente estará ocioso o que leva ele a demorar para responder.

Requisitos 📦

  • Persistencia de dados: MongoDB, mongoose.✅
  • Framework: Express.✅
  • Padronização de estilo: EsLint.✅
  • Task runner para build: Grunt + webPack✅
  • Gerenciamento de dependências: Npm.✅
  • Jwt com jsonwebtoken.✅
  • Testes com mocha.✅
  • Criptografia hash com crypto-js.✅

Uso da Api

Requisições para a API devem seguir os padrões:

Método Descrição
GET Retorna informações de um cadastro.
POST Utilizado para criar um novo cadastro.

Cadastro de Usuário (/sign-up)

Método URL
POST https://auth-user-desafio2.onrender.com/sign-up
  • Requisição (application/json)

    • HEADER

        {
          "Content-Type": "application/json"
        }
      
    • BODY

        {
          "nome": "Antonio de Souza",
          "email": "[email protected]",
          "senha": "antonio#123",
          "telefones": [
             {
               "numero": "123456789",
                "ddd": "11"
             }
          ]
        }
      
  • Response

    • Status 201 CREATED

    • BODY

        {
          "id": "GUID/ID",
          "name": "Antonio de Souza",
          "data_criacao": "2023-11-22T14:38:34.911Z",
          "data_atualizacao": "2023-11-22T14:38:34.911Z",
          "ultimo_login": "2023-11-22T14:38:34.700Z",
          "token": "GUID/JWT"
        }
      
  • Erros Possíveis

    Status Descrição
    401 - Unauthorized Usuário e/ou senha incorretos
    422 - Unprocessable Entity A requisição é compreendida porém o corpo contém erros

Autenticação (/sign-in)

Método URL
POST https://auth-user-desafio2.onrender.com/sign-in
  • Requisição (application/json)

    • HEADER

        {
          "Content-Type": "application/json"
        }
      
    • BODY

        {
          "email": "[email protected]",
          "senha": "antonio#123"
        }
      
  • Response

    • Status 200 OK

    • BODY

        {
          "id": "GUID/ID",
          "name": "Antonio de Souza",
          "data_criacao": "2023-11-22T14:38:34.911Z",
          "data_atualizacao": "2023-11-22T14:38:34.911Z",
          "ultimo_login": "2023-11-22T14:45:34.700Z",
          "token": "GUID/JWT"
        }
      
  • Erros Possíveis

    Status Descrição
    409 - Conflict Tentativa de cadastro com um email já existente
    422 - Unprocessable Entity A requisição é compreendida porém o corpo contém erros

Buscas Usuário (/user)

Método URL
GET https://auth-user-desafio2.onrender.com/user
  • Requisição

    • HEADER

        {
          "Authentication": "Bearer {token}"
        }
      
  • Response

    • Status 200 OK

    • BODY

        {
          "id": "GUID/ID",
          "name": "Antonio de Souza",
          "data_criacao": "2023-11-22T14:38:34.911Z",
          "data_atualizacao": "2023-11-22T14:38:34.911Z",
          "ultimo_login": "2023-11-22T14:45:34.700Z",
        }
      
  • Erros Possíveis

    Status Descrição
    401 - Unauthorized Token inválido
    401 - Unauthorized (Sessão inválida) O token expirou

Desenvolvedor

Kauê Sena
Guilherme de Souza

Obrigado pela atenção!

desafio_tecnico_2's People

Contributors

guilherme-dsgl avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.