【发布时间】:2018-06-05 00:31:59
【问题描述】:
我正在实现 JWT 刷新令牌,并为刷新令牌设置不同的过期时间,但它的过期时间与访问令牌相同
var refreshTokenId = Guid.NewGuid().ToString("n");
DateTime refreshTokenLifeTime = context.OwinContext.Get<DateTime>("as:clientRefreshTokenLifeTime");
保存在数据库中
RefreshToken refreshToken = new RefreshToken();
refreshToken.Token = refreshTokenId;
refreshToken.PrivateKey = context.SerializeTicket();
refreshToken.ExpiryDate = refreshTokenLifeTime;
结束保存 Db
context.Ticket.Properties.IssuedUtc = DateTime.Now;
context.Ticket.Properties.ExpiresUtc = refreshTokenLifeTime;
context.SetToken(refreshTokenId);
context.SetToken(context.SerializeTicket());
任何帮助我做错了什么?
【问题讨论】:
-
您在提供的代码中哪里设置了不同的过期时间?我看到这段代码中有两个过期时间设置为相同的值。
-
这是刷新令牌
-
请为您的访问令牌添加逻辑。如果时间相同,我们需要查看两个令牌。
-
您能否在您的问题中为 IAuthenticationTokenProvider 编写整个实现代码?
-
你似乎在使用相同的
refreshTokenLifeTime两个令牌。
标签: c# oauth-2.0 jwt refresh-token