Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alura.WebAPI.Api Status 401

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();
        }
1 resposta
solução!

Puts, consegui fazer funcionar kkkk

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software