我通过初始登录设置了一个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");
}
。如果我误解了你的情况,请随时告诉我。