Categorygithub.com/MachadoMichael/credentials
module
0.0.0-20240801102654-4a01ead0f72e
Repository: https://github.com/machadomichael/credentials.git
Documentation: pkg.go.dev

# README

< Credentials >

tela de login

Inicialização

Para executar o projeto, utilize as ferramentas descritas na sessão Ferramentas.

Ferramentas

  • Neovim / Vscode - Editor de texto para desenvolvimento. Docker - Ferramenta para criar conteiners e facilitar o build da aplicação.
  • Make - Ferramenta para scriptar comandos

Links importantes

  • Go - Linguagem usada no projeto.
  • Gin - Package usado para criação da API.
  • Jwt - Package para gerar jwt para rotas
  • Godotenv - Package para acessar variavies de ambiente
  • Crypto - Package para cryptografia
  • Redis - Banco de dados

< Credentials >

Introdução

Sistema desenvolvidor para atuar como atuar como um middleware em outros projetos com foco em authenticação do usuário.

Este projeto possui o objetivo principal validar o acesso a quaisquer projeto.
Com os objetivos gerais de realizar a inserção de credenciais com password cryptografado, rotas com aplicação de jwt e observabilidade aplicada na solução.

Análise técnica

Descrição do ambiente técnico

O sistema é composto por um banco de dados e uma api. Funcionalidades principais:

  • F1 - Manipular credencial de acesso.
  • F2 - Validar acesso por token.
  • F3 - Criar e verificar cryptografia de dados sensíveis.
  • F4 - Persistir dados.

As ferramentas utilizadas para o desenvolvimento incluem Golang que é uma linguagem de programação utilizada para o Back-end. Redis atuando como sistema gerenciador de banco de dados e Docker para utilizar o ambiente em container.

Requisitos Funcionais

Respeitando a proposta, o sistema deverá atender os seguintes requisitos:

  • RF1 - Autenticação e Autorização com JWT.
  • RF2 - Cryptografia de dados sensíves.
  • RF3 - Logs de acesso e error.

Mensagens internas

Rotas utilizadas pela aplicação web para executar metodos de POST e GET no banco de dados. Onde o retorno de cada uma das funções estara contido em uma sessão para renderização de páginas web.

NomeFuncionalidade
GET /api/v1/readRetorna todas as credencials cadastradas.
POST /api/v1/loginVerifica a autenticidade da credencial e caso esteja de acordo retorna token de acesso.
POST /api/v1/createInsere uma nova credencial.
DELETE /api/v1/:emailDeleta uma credencial pelo email.
PUT /api/v1/updatePasswordAltera o password de uma credencial.

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author