код входа
Код: Выделить всё
[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)
});
}
< /code>
Затем следующая часть должна ограничить доступ. Пользователь должен войти в систему сначала, чтобы просмотреть фактический контент.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
};
});
< /code>
включен вызовом < /p>
app.UseAuthentication();
Код: Выделить всё
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
Я предложил Topken />
www-authenticate → error error = "vangilid_token", error_description = "Аудитория недействительна" < /p>
< /blockquote>
Почему ошибка дает мне инвалидный ток>
Подробнее здесь: https://stackoverflow.com/questions/543 ... alid-token
Мобильная версия