2017-09-19 72 views
0

我已經使用具有IdentityServer4 netstandard2.0工作原型Visual Studio解決方案:DX10223:終身驗證失敗

  • IdentityServer(asp.net核心MVC)
    • AllowedGrantTypes = GrantTypes.HybridAndClientCredentials
    • RefreshTokenUsage = TokenUsage.ReUse
    • RefreshTokenExpiration = TokenExpiration.Sliding
  • Web項目(asp.net核心MVC)
  • API項目(asp.net核心MVC)

有時候,加入API項目時,我得到了以下錯誤:

DX10223:生命週期驗證失敗。令牌已過期。

如何以及在哪裏可以刷新令牌?

是否可以刷新API項目上的標記?

+0

嘗試檢查服務器的時區和當前的時間設定。使用錯誤的時間設置可用的令牌1小時可能會使令牌過期超出預期。 –

+0

如果我想在用戶斷開連接之前沒有到期? – ZeBobo5

+0

您可以考慮使用'AspNet.Security.OpenIdConnect.Server'而不是'Microsoft.Owin.Security.OpenIdConnect'。此問題與OAuth令牌有效性相關,請檢查令牌是否有適當的到期時間(我不太瞭解OAuth令牌過期的工作原理)。 –

回答

0

作爲@Tetsuya山本說 - 首先檢查時區和時間設置。無論如何,你設置身份服務器客戶端令牌的生命週期,例如像「AccessTokenLifetime」這樣的配置:86400

1

令牌具有有限的生存期。他們會在某個時候到期。

刷新令牌是某些應用程序類型在沒有直接用戶交互的情況下請求新訪問令牌的機制。

刷新令牌相關的設置描述如下: https://identityserver4.readthedocs.io/en/release/topics/refresh_tokens.html

您通過發送刷新令牌到令牌端點刷新令牌。這將返回一個新的訪問令牌。

https://tools.ietf.org/html/rfc6749#section-6

的IdentityModel庫有TokenClient類封裝了令牌端點的相互作用在C#

https://github.com/IdentityModel/IdentityModel2

+0

非常感謝。 但是你有沒有更新我的Web項目和我的API項目的聲明樣本? – ZeBobo5

+0

這句話沒有意義。 – leastprivilege

+0

是的,對不起,我迷路了。 我找到了解決方案,通過添加隱藏的iframe在我的Web項目中調用間隔刷新。所以令牌在到期前被續訂。現在,我的網絡用戶可以使用自動化技術在同一頁面停留幾天,以調用ajax Api項目。 感謝您的幫助和安全生命! – ZeBobo5