#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. Это была опечатка. Значения эмитента отличались при запуске и в контроллере.