|
Você sabe a diferença entre o JWT Bearer manual e o Bearer Token nativo da ASP.NET Core ? |

// Exemplo conceitual da construção do token em C# var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.Role, user.Role) }), Expires = DateTime.UtcNow.AddHours(2), Issuer = builder.Configuration["Jwt:Issuer"], Audience = builder.Configuration["Jwt:Audience"], SigningCredentials = new SigningCredentials( new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)), SecurityAlgorithms.HmacSha256Signature) }; var handler = new JwtSecurityTokenHandler(); var token = handler.CreateToken(tokenDescriptor); var jwtString = handler.WriteToken(token); |
| builder.Services .AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = ... }); |
1. Configuração dos Serviços
(Program.cs):
var builder = WebApplication.CreateBuilder(args); // Adiciona os serviços de Identity e autenticação via Bearer Token builder.Services.AddAuthentication(IdentityConstants.BearerScheme) .AddBearerToken(IdentityConstants.BearerScheme); builder.Services.AddAuthorization(); builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); builder.Services.AddIdentityCore<ApplicationUser>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddApiEndpoints(); // Habilita a geração dos endpoints de API var app = builder.Build(); app.UseAuthentication(); app.UseAuthorization(); // Mapeia automaticamente as rotas: /register, /login, /refresh, etc. app.MapGroup("/identity").MapIdentityApi<ApplicationUser>(); app.Run(); |
Aplicações SPA ou Mobile Simples: Quando a API serve diretamente uma aplicação Web/Mobile própria e você não precisa que a UI leia o conteúdo do token.
Projetos de Foco Rápido (Boilerplate Zero): Cenários onde o foco é entregar autenticação segura com suporte a Refresh Token sem gastar tempo criando serviços de criptografia.
Microserviços Internos Confiáveis: Onde o servidor que emite e o servidor que valida compartilham a mesma infraestrutura e chave de proteção de dados.
E estamos conversados
..
"Não estejais inquietos por coisa alguma; antes as
vossas petições sejam em tudo conhecidas diante de Deus pela oração e súplica,
com ação de graças."
Filipenses 4:6
Referências: