Аутентификация на основе токенов .net core 2.1 выдает ошибку 401

#bearer-token #core-api

#токен на предъявителя #core-api

Вопрос:

Здравствуйте, я разрабатываю приложение с аутентификацией на основе токенов.

В startup.cs добавлен приведенный ниже код.

 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(jwtBearerOptions =>
                {
                    jwtBearerOptions.TokenValidationParameters = new TokenValidationParameters()
                    {
                        ValidateActor = true,
                        ValidateAudience = true,
                        ValidateLifetime = true,
                        ValidateIssuerSigningKey = true,
                        ValidIssuer ="Issuer",
                        ValidAudience ="Audience",
                        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("ProEMLh5e_qnzdNUQrqdHPgp"))
                    };
                });
  

и

 app.UseAuthentication();
  

в контроллере

     HttpPost("AdminLogin")]
    public IActionResult AdminLogin(Admin admin)
    {
       var result = admine.Login(admin);
       if (result!=null amp;amp; result.Id>0)
       {
          var claims = new[]
          {
             new Claim(JwtRegisteredClaimNames.Sub, admin.Username),
             new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
          };
          var token = new JwtSecurityToken
          (
              issuer: "issuer", 
              audience: "Audience",
              claims: claims,
              expires: DateTime.UtcNow.AddDays(1), 
              notBefore: DateTime.UtcNow,
              signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes("ProEMLh5e_qnzdNUQrqdHPgp")),
              SecurityAlgorithms.HmacSha256)
              );
              result.Token = new JwtSecurityTokenHandler().WriteToken(token);            
       }
       return Ok(result);
   }
  

Она работает и генерирует токен и возвращает. Моя проблема в том, что когда я отправляю запрос с этим токеном. Выдает ошибку авторизации 401. для приведенного ниже

  [Authorize]
 [HttpPost("Exams")]
 public IActionResult Exams([FromBody] Exam model)
 {
   var result = exam.GEtExams(model.Id);
   return Ok(result);
 }
  

Это изображение предназначено для генерации кода try
введите описание изображения здесь

После того, как я сгенерировал и вернул, я попробовал с postman этот токен, подобный введите описание изображения здесь

Где моя ошибка?

Заранее спасибо

Комментарии:

1. Это была опечатка. Значения эмитента отличались при запуске и в контроллере.