angular - 当我正确发送令牌时出现未经授权的错误
问题描述
我使用 Web API 和 Angular 8。我尝试保护我的服务器端,但随后我发送的每个令牌都收到未经授权的错误。
我试图在互联网上寻找解决方案,但我没有找到任何东西。
那是我的代码
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;
}
网络接口:
[Authorize]
[Route("GetLearnedPagesCount/{userId}")]
public IHttpActionResult GetLearnedPagesCount(int userId)
{
...
}
角度:
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 中得到了它。
我的问题可能是什么?
谢谢!
解决方案
推荐阅读
- javascript - 如何根据订单项自定义属性计算价格?
- reactjs - 是的 - 如何检查所有数组是否具有相同的长度
- python - 将 Flatten 层从 PyTorch 转换为 Tensorflow - 等效于 start_dim 和 end_dim
- python - 如何在 python 中使用 plotly 绘制累积数据?
- internationalization - react-intl:使用 .js 文件而不是 .json 文件进行消息存储
- powerbi - 通过编写 DAX 公式查找每个覆盖的通话持续时间
- reactjs - 如何使用钩子进行映射
- assembly - 当我在 nasm 中使用它们时,真正代表什么符号和变量?
- svg - 聚焦、模糊、聚焦、聚焦,不适用于 D3 和 SVG 元素?有替代方案吗?
- raspberry-pi - 将 Raspberry Pi 4 与 EM18 阅读器模块连接