ADAL使用AcquireTokenAsync和现有JWT令牌续订令牌

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ADAL使用AcquireTokenAsync和现有JWT令牌续订令牌相关的知识,希望对你有一定的参考价值。

我通过初始登录设置了一个JWT令牌,设置为在60分钟后到期。我想更新此令牌,以便用户不会注销。

为此,我使用qazxsw poi在60分钟的窗口内使用qazxsw poi

AcquireTokenAsync

使用现有JWT令牌的上述调用是否只能在令牌过期后使用?

任何投入都赞赏。

答案

根据你的代码似乎你想在web api(服务)端刷新令牌,在服务端你不应该更新访问令牌。客户端应用程序应该执行该操作。

使用ADAL,您的应用程序将在最终用户首次登录时获得访问和刷新令牌,然后您可以使用刷新令牌以在访问令牌过期且刷新令牌可用且有效时静默获取新访问令牌(UserAssertion)。

可以使用刷新令牌刷新访问令牌,最长时间为90天,并且通过提示用户获取访问令牌的日期为14天到期滑动窗口。

结帐我们的public static async Task RenewToken(string resourceUri) { var authContext = new AuthenticationContext(Authority); var authHeader = HttpContext.Current.Request.Headers["Authorization"]; var userAccessToken = authHeader.Substring(authHeader.LastIndexOf(' ')).Trim(); var userAssertion = new UserAssertion(userAccessToken); // keeps returning the same access token with same expiry var authResult = await authContext.AcquireTokenAsync(resourceUri, ClientId, userAssertion); var userInfo = authResult.UserInfo; var apiAccessToken = authResult.AccessToken; var expiry = authResult.ExpiresOn.UtcDateTime.ToString("u"); } 。如果我误解了你的情况,请随时告诉我。

以上是关于ADAL使用AcquireTokenAsync和现有JWT令牌续订令牌的主要内容,如果未能解决你的问题,请参考以下文章

如果在 UWP 中调用 authContext.AcquireTokenAsync,则出现 Null 异常

如何使用 Active Directory 存储在 AcquireTokenAsync 中收到的令牌

AcquireTokenAsync 允许的额外查询参数是啥

AAD Graph API在调用AcquireTokenAsync后返回404,但在调用AcquireTokenSilentAsync后不返回404

为啥 ADAL 说证书被拒绝以响应查尔斯代理?

使用 ADAL 从 UWP 中的 ADFS 获取 UserInfo