grecojoao / PasswordManager

Desafio Técnico: Implementação de EndPoints com autenticação para geração e validação de senhas.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API - Gerenciador de Senhas

NPM

Sobre o projeto

API Gerenciador de senhas é uma aplicação back-end desenvolvida para o fornecimento e validação de senhas.

A aplicação possui o Endpoint: "/Login" do tipo Post, que é responsável por autenticar o usuário e gerar um Token do tipo JWT Bearer. No corpo da requisição devem ser informados o nome de usuário e senha:

{
  "user": "string",
  "password": "string"
}

Também possui o Endpoint: "/Password/Validate" do tipo Post, que recebe no corpo da requisição uma senha e a valida de acordo com as regras de négocio:

{
  "password": "string"
}

Regras de négocio:

  • Conter no mínimo 15 caracteres;
  • Conter no mínimo uma letra maiúscula;
  • Conter no mínimo uma letra minúscula;
  • Conter no mínimo um dos seguintes caracteres especiais: (@,#,_,- e !);
  • Não pode conter caracteres repetidos em sequência, por exemplo: 1111, aaaa, bbbb, @@@@, BBBB;
  • Deve prever case-sensitive, por exemplo: A é diferente de a;

E por fim também possui o Endpoint: "/Password/Generate" do tipo Get, que é responsável por gerar uma senha válida de acordo com as regras de négocio anteriores.

Os métodos "/Password/Validate" e "/Password/Generate" requerem que o usuário esteja autenticado, deve-se passar o token no cabeçalho da requisição. Exemplo: Key: "Authorization", Value: "Bearer MEUTOKEN1!2@3#".

🚀 Tecnologias

  • C#, ASP.NET Core(5.0)
  • Docker

💣 Implantação em produção

📝 Como executar o projeto

Pré-requisitos:

  • ASP.NET Core Runtime 5.0.8 ou
  • SDK 5.0.302(desenvolvimento)
# clonar o repositório
git clone https://github.com/grecojoao/PasswordManager.git

# entrar na pasta da API
cd PasswordManager/PasswordManager.API

# restaurar as dependências
dotnet restore

# executar o projeto
dotnet watch run
  • Windows: Docker Desktop WSL 2
  • Linux: Docker Desktop
# clonar a imagem docker
docker pull grecojoao/passwordmanagerapi

# executar a imagem docker
docker run grecojoao/passwordmanagerapi

About

Desafio Técnico: Implementação de EndPoints com autenticação para geração e validação de senhas.

License:MIT License


Languages

Language:C# 97.7%Language:Dockerfile 2.3%