我在Azure中托管为WebApp的Thinktecture身份服务器v3的实例。一般来说,它的工作方式与预期的一样,但我有一些问题试图通过令牌身份/连接/令牌端点与refresh_token授权类型使用刷新令牌。我有一个使用授权码流的客户端,这是关系到有关此客户端刷新令牌选项的设置:在Azure中部署身份验证服务器3刷新令牌问题
// refresh token options
AccessTokenType = AccessTokenType.Jwt,
AccessTokenLifetime = 3600,
RefreshTokenUsage = TokenUsage.OneTimeOnly, // Every time generates new refresh token. Not only access token.
RefreshTokenExpiration = TokenExpiration.Sliding,
SlidingRefreshTokenLifetime = 1296000
对于谁与此工作过的人很清楚,我用JWT令牌和我的访问令牌有效期为1小时,之后无需在Identity Server上再次登录,我可以使用刷新令牌并获取新的访问权限和刷新令牌。我的刷新令牌必须有效15天(1296000秒)。实际发生的是它不能按预期工作。出于某种原因,当我决定打电话给我的REST API(Identity Server的依赖方)时,在前一个小时之后的一个半小时,我得到了invalid_grant响应。
我决定对它进行一点测试,并使我的访问令牌在2分钟内过期,我的刷新令牌为10次。然后,我尝试在访问令牌后1,2,3分钟拨打电话已经过期,并且按预期工作。我真的不想用1小时的访问令牌进行这种测试,所以我决定在这里问一下是否有人曾经这样做过。
当我的访问令牌过期时,我知道客户端。这就是为什么我使用我的刷新令牌来接收新访问令牌并使用它。我调用刷新令牌端点,但由于某种原因,此方法在某个时间停止工作。 – user2128702
什么停止工作?使用当前的刷新标记在IdSrv上打开标记端点以获取新的访问标记和新的刷新标记?或者用你的访问令牌打你的API? –
是的,对标记端点的调用返回invalid_grant错误。它不再识别我的刷新标记。 – user2128702