【发布时间】:2020-07-16 07:20:08
【问题描述】:
我正在学习有关微服务的教程。我已经到了将不记名令牌用于基本授权模型的地步。我创建了令牌并设置了所有属性,但是当我尝试使用令牌时,它给了我错误:Bearer error="invalid_token", error_description="The token expired at '04/03/2020 21:47:31'" 即使它目前是 21:42,所以它实际上并没有过期。
我只是查看这个网址:https://localhost:5001/api/Activities/GetActivity
会不会是邮递员的问题,我已经在尝试更改发行人,增加了5分钟以上,向邮递员添加了更多标题并且没有运气。
这是我创建令牌的函数:
public CustomJsonWebToken Create(Guid userId)
{
var nowUtc = DateTime.UtcNow;
var expiration = nowUtc.AddMinutes(jwtOptions.ExpiryMinutes);
var centuryBegin = new DateTime(1970, 1, 1).ToUniversalTime();
var exp = (long)(new TimeSpan(expiration.Ticks - centuryBegin.Ticks).TotalSeconds);
var now = (long)(new TimeSpan(nowUtc.Ticks - centuryBegin.Ticks).TotalSeconds);
var payload = new JwtPayload
{
{"sub", userId},
{"iss", jwtOptions.Issuer},
{"iat", now},
{"exp", exp},
{"unique_name", userId}
};
var jwt = new JwtSecurityToken(jwtHeader, payload);
var token = jwtSecurityTokenHandler.WriteToken(jwt);
return new CustomJsonWebToken
{
Token = token,
Expire = exp
};
}
【问题讨论】: