C# asp.net core Bearer error="invalid_token"C#

Место общения программистов C#
Ответить
Anonymous
 C# asp.net core Bearer error="invalid_token"

Сообщение Anonymous »

У меня есть действующий токен, но я не могу заставить работать свою часть аутентификации. Почему, казалось бы, действительный токен получает ошибку недопустимого токена?

Это код для входа в систему, который возвращает действительный токен, если учетные данные верны. используются. В отличие от этого, неверные учетные данные для входа вызывают ошибку 401 Unauthorized.
Код входа

Код: Выделить всё

[HttpPost("login")]
public async Task Login(UserForLoginDto userForLoginDto)
{
var userFromRepo = await _repo.Login(userForLoginDto.Username.ToLower(), userForLoginDto.Password);

if (userFromRepo == null)
return Unauthorized();

var claims = new[]
{
new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()),
new Claim(ClaimTypes.Name, userFromRepo.Username)
};

var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value));

var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);

var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(claims),
Expires = DateTime.Now.AddDays(1),
SigningCredentials = creds
};

var tokenHandler = new JwtSecurityTokenHandler();

var token = tokenHandler.CreateToken(tokenDescriptor);

return Ok(new {
token = tokenHandler.WriteToken(token)
});
}
Затем следующий этап — ограничение доступа. Пользователь должен сначала войти в систему, чтобы просмотреть актуальный контент.
Код настройки аутентификации

Код: Выделить всё

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>{
options.TokenValidationParameters = new TokenValidationParameters{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration.GetSection("AppSettings:Token").Value)),
ValidateIssuer = false
};
});
Включается вызовом

Код: Выделить всё

app.UseAuthentication();
Я также включил [Authorize] в контроллере значений

Код: Выделить всё

[Authorize]
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
Это скриншот почтальона, когда я пытаюсь позвонить
[img]https:// i.sstatic.net/Dg0Yr.jpg[/img]

Я вставил токен, полученный при входе в систему, но выдает эту ошибку
WWW-Аутентификация →Носитель error="invalid_token", error_description="Аудитория недействительна"

Почему ошибка дает мне неверный токен, если токен принадлежит логин и как его решить?

Подробнее здесь: https://stackoverflow.com/questions/543 ... alid-token
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»