我在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