Я работаю с Web API и Angular 8. Я пытаюсь защитить свою серверную часть, но затем получаю несанкционированную ошибку для каждого отправляемого токена.
Я пытался найти решение по inte rnet, но ничего не нашел.
Это мой код
C#:
public string GenerateTokenForUser(UsersDTO user)
{
var signingKey = "xxxxxxxxxxxxxxxxxxxxxx";
var now = DateTime.UtcNow;
var key = new SymmetricSecurityKey(Encoding.Default.GetBytes(signingKey));
var creds = new SigningCredentials(key,
SecurityAlgorithms.HmacSha256);
var claimsIdentity = new ClaimsIdentity(new List<Claim>()
{
new Claim(ClaimTypes.Name, user.id.ToString())
}, "custom");
var securityTokenDescriptor = new SecurityTokenDescriptor()
{
Issuer = "self",
Subject = claimsIdentity,
SigningCredentials = creds,
Expires = now.AddHours(5)
};
var tokenHandler = new JwtSecurityTokenHandler();
var plainToken = tokenHandler.CreateToken(securityTokenDescriptor);
var signedAndEncodedToken = tokenHandler.WriteToken(plainToken);
return signedAndEncodedToken;
}
Веб-API:
[Authorize]
[Route("GetLearnedPagesCount/{userId}")]
public IHttpActionResult GetLearnedPagesCount(int userId)
{
...
}
Angular:
httpOptions = {
headers: new HttpHeaders({
'Authorization': `Bearer `+this.cookieService.get('token')
})
};
GetLearnedPages(): Observable<Array<MyPages>> {
return this.httpClient.get<Array<MyPages>>(this.serverServ.URL + "Controller/GetLearnedPages/"
+ this.user.id, this.httpOptions);
}
Я получаю правильный токен и получаю его из файлов cookie.
В чем может быть моя проблема?
Спасибо!