Olá, fiz todos os passos do video, e mesmo assim nao consegui seguir com a autenticação da Api separada dos projetos.
não sei se fiz algo de errado, ou algo está me passando por despercebido, mas creio que essas duas partes do código são referente a autenticação, quem puder me dar um help desde já agradeço.
StartUp. WEB.API.Api
services.AddAuthentication(o =>
{
o.DefaultAuthenticateScheme = "JwtBearer";
o.DefaultChallengeScheme = "JwtBearer";
}).AddJwtBearer("JwtBearer", o =>
{
o.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("minha-validacao-nao-deu-certo")),
ClockSkew = TimeSpan.FromMinutes(5),
ValidIssuer = "Alura.WebApp",
ValidAudience = "Postman",
};
});
LoginController AuthProvider
[HttpPost]
public async Task<IActionResult> Token(LoginModel model)
{
if (ModelState.IsValid)
{
var result = await _sign.PasswordSignInAsync(model.Login, model.Password, true, true);
if (result.Succeeded)
{
//criatoken (header + payload+signature)
#region PayLoad
var direitos = new[]
{
new Claim(JwtRegisteredClaimNames.Sub, model.Login),
new Claim(JwtRegisteredClaimNames.Jti,Guid.NewGuid().ToString())
};
#endregion
#region Signature
var chave = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("minha-validacao-nao-deu-certo"));
var credenciais = new SigningCredentials(chave, SecurityAlgorithms.HmacSha256);
#endregion
var token = new JwtSecurityToken
(
issuer: "Alura.WebApp",
audience: "Postman",
claims: direitos,
signingCredentials: credenciais,
expires: DateTime.Now.AddMinutes(30)
);
var tokenString = new JwtSecurityTokenHandler().WriteToken(token);
return Ok(tokenString);
}
return Unauthorized();
}
return BadRequest();
}