我正在使用带有刷新令牌的混合流。我想限制从Web服务器到身份验证/资源服务器的呼叫,即资源服务器的未经授权的错误和访问令牌的不必要的更新
问题: 访问令牌上是否有到期日,或者是否可以将到期或发布日期时间添加到访问令牌中?我想在刷新令牌之前使用它进行测试。
我想在Web服务器上执行此验证。我只需要访问令牌上的发布日期
我确实知道到期日期不是完整的证明,并且令牌可能仍然无效,但是当出现这种情况时,我可以满足这种情况。
谢谢
答案 0 :(得分:1)
Web服务器是客户端。客户端可以这样读取到期时间(已经是访问令牌的一部分):
using System.IdentityModel.Tokens.Jwt;
public class HomeController : Controller
{
public async Task<IActionResult> CallApiUsingUserAccessToken()
{
var accessToken = await HttpContext.GetTokenAsync("access_token");
// Read expiration time
var tokenHandler = new JwtSecurityTokenHandler();
var jwtSecurityToken = tokenHandler.ReadJwtToken(accessToken);
var validTo = jwtSecurityToken.ValidTo;
// ...
}
}
我刚刚添加了有关读取到期时间的行。 HomeController是MvcClient项目的一部分,该项目在5_HybridFlowAuthenticationWithApiAccess示例中可用。
答案 1 :(得分:0)
客户端配置允许设置以下有关访问令牌生存期的属性:
AccessTokenLifetime :访问令牌的生存时间(以秒为单位)
AbsoluteRefreshTokenLifetime :刷新令牌的最大生存期
RefreshTokenExpiration :固定时间到期(具有绝对和滑动选项)
以下是有关此文档: http://docs.identityserver.io/en/release/reference/client.html