Este projeto tem como objetivo testar a implementação de JSON Web Tokens (JWT) em uma API utilizando a linguagem Go (Golang).
Para executar este projeto, siga as etapas abaixo:
Você pode clonar o repositório usando o seguinte comando:
git clone https://github.com/matheusferreira165/jwt-authentication.git
Crie um arquivo .env com as seguintes variaveis
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
DB_HOST=db
DB_PORT=5432
DB_NAME=
DB_USER=
DB_PASSWORD=
Certifique-se de que o docker e docker-compose estao instalados na maquina, mais informacoes em: https://docs.docker.com/get-docker/
docker-compose up
Isso iniciará o aplicativo, incluindo a api e o db PostgreSQL, em containers Docker.
- Instale o Postgres, mais informacoes em: https://www.postgresql.org/download/
- Fazer a build do projeto
go build -o server
- Executar o arquivo gerado
./server
Após a instalação e execução bem-sucedidas, você pode usar a API para realizar a autenticação com JWT. Aqui estão algumas operações de exemplo:
-
Registrar um usuário: Envie uma solicitação POST para
/api/v1/register
com os dados do usuário EX:{ "name": "Rosa", "email": "rosa@gmail.com", "password": "rosa123" }
-
Fazer login: Envie uma solicitação POST para
/api/v1/login
com suas credenciais para obter um token JWT EX:{ "email": "rosa@gmail.com", "password": "rosa123" }
-
Acessar recurso protegido que retorna os dados do usuario: Envie uma solicitação GET para
/api/v1/user
Possiveis resultados:Usuario Logado:
{ "id": 1, "name": "Rosa", "email": "rosa@gmail.com" }
Usuario deslogado:
{ "message": "not logged" }
Usuario nao autorizado:
{ "message": "unauthentication" }
-
Deslogar: Envie uma solicitação GET para
/api/v1/logout
com suas credenciais para obter um token JWT
Neste projeto, foram utilizadas as seguintes tecnologias:
- Go (Golang)
- PostgreSQL
- JSON Web Tokens (JWT)