2 回答

TA贡献2021条经验 获得超8个赞
你的逻辑是对的!但我认为,您的密钥没有足够的字符来创建访问令牌。只需增加密钥长度,它就可以正常工作。
更新:对于HmacSha256Signature,秘钥长度不小于128位;换句话说,它应该至少有 16 个字符。

TA贡献1825条经验 获得超4个赞
这是我用来构建 jwt 令牌服务器端的代码示例:
private string BuildToken(User user)
{
var userSerialise = JsonConvert.SerializeObject(user);
var claims = new[] {
new Claim(ClaimTypes.Email, user.EmailAddress),
new Claim(ClaimTypes.UserData, userSerialise)
};
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);
var token = new JwtSecurityToken(_config["Jwt:Issuer"],
_config["Jwt:Issuer"],
claims,
expires: DateTime.Now.AddMinutes(30),
signingCredentials: creds);
return new JwtSecurityTokenHandler().WriteToken(token);
}
- 2 回答
- 0 关注
- 212 浏览
添加回答
举报