https://github.com/vbsantos/csharp-jwt-auth-api
Exemplo de como implementar autenticação e autorização em ASP.NET Core utilizando JWT
https://github.com/vbsantos/csharp-jwt-auth-api
asp-net-core authentication authorization bcrypt cookies csharp dotnet-core jwt-token
Last synced: 6 days ago
JSON representation
Exemplo de como implementar autenticação e autorização em ASP.NET Core utilizando JWT
- Host: GitHub
- URL: https://github.com/vbsantos/csharp-jwt-auth-api
- Owner: vbsantos
- Created: 2023-09-15T00:58:48.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-15T01:36:25.000Z (almost 3 years ago)
- Last Synced: 2025-02-26T02:42:20.107Z (over 1 year ago)
- Topics: asp-net-core, authentication, authorization, bcrypt, cookies, csharp, dotnet-core, jwt-token
- Language: C#
- Homepage:
- Size: 15.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Authentication & Authorization
## Sobre o Projeto
Este projeto foi criado para servir como um exemplo de como implementar autenticação e autorização em ASP.NET Core utilizando JWT. Ao invés de armazenar os tokens JWT no LocalStorage ou SessionStorage, este projeto opta por armazená-los em cookies, proporcionando uma camada adicional de segurança contra potenciais ataques XSS.
## Tecnologias Usadas
- ASP.NET Core 7.0.400
- JWT (JSON Web Tokens)
- BCrypt.Net-Next - Para hashing seguro de senhas
## Endpoints
### Grupo: Auth
- `POST /api/Auth/Register`:
- Descrição: Endpoint para registrar um novo usuário.
- Payload:
- `username`: Nome do usuário (string).
- `password`: Senha do usuário (string).
- `POST /api/Auth/RegisterAdmin`:
- Descrição: Endpoint para registrar um novo administrador.
- Payload:
- `username`: Nome do usuário (string).
- `password`: Senha do usuário (string).
- `POST /api/Auth/Login`:
- Descrição: Endpoint para autenticar um usuário (utiliza cookies).
- Payload:
- `username`: Nome do usuário (string).
- `password`: Senha do usuário (string).
- `POST /api/Auth/LoginApi`:
- Descrição: Endpoint para autenticar um usuário via API (não utiliza cookies).
- Payload:
- `username`: Nome do usuário (string).
- `password`: Senha do usuário (string).
- `GET /api/Auth/Users`:
- Permissões: `Admin`
- Descrição: Endpoint para obter uma lista de usuários `Default`.
### Grupo: WeatherForecast
- `GET /api/WeatherForecast`:
- Permissões: `Admin`, `Default`
- Descrição: Endpoint para obter uma previsão do tempo.
- Resposta:
- `date`: Data da previsão (string).
- `temperatureC`: Temperatura em Celsius (int).
- `temperatureF`: Temperatura em Fahrenheit (int, somente leitura).
- `summary`: Sumário da previsão (string, opcional).