У меня есть вопрос, я подготовил простой механизм аутентификации и авторизации токена JWT, поэтому для проверки этого токена в файле startup.cs в разделе настройки служб я настроил:
services.AddAuthentication("OAuth")
.AddJwtBearer("OAuth", config =>
{
config.TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = AuthenticationController.Audience,
ValidIssuer = AuthenticationController.Issuer,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidateIssuer = false,
ValidateAudience = false,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(AuthenticationController.Secret))
};
});
И я генерирую токен следующим образом:
var claims = new[]
{
new Claim(JwtRegisteredClaimNames.Sub, User.Id),
new Claim(ClaimsIdentity.DefaultRoleClaimType, User.Role)
};
var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Secret));
var signingCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(Issuer, Audience, claims, notBefore: DateTime.Now, expires: DateTime.Now.AddDays(300), signingCredentials);
var tokenJson = new JwtSecurityTokenHandler().WriteToken(token);
Так что моя проблема в том, что я думаю, что что-то не так с моей проверкой токена, поэтому, например, у меня есть простой метод get с атрибутом [Authorize] на нем без авторизации.
Когда я запускаю его, я получаю 401, так что хорошо, нет токена, нет доступа, отлично, когда я использую сгенерированный токен, все тоже хорошо, но когда я что-то изменяю внутри этого токена, я все еще получаю сообщение с ответом popper (например, заменить один символ в первой части токена) из get.
например мой простой метод get:
[Authorize]
[HttpGet, ActionName("GetRecords:)
public async Task<IActionResult> GetApplications()
{
var result = await this.service.GetRecords(this.mapper);
if (result == null || !result.Any()) return NotFound();
return Ok(result);
}
Интересно то, что когда я пробовал то же самое при создании записи (какой-то пост), я получал 401, когда токен меняется вручную