Angular中的Adal.js令牌刷新问题

时间:2018-08-28 09:29:27

标签: angularjs adal adal.js

刷新令牌未如我在adal.js(@types-1.0.8)中预期的那样工作,当用户在屏幕上闲置了最后15分钟(因为我在旧令牌到期前15分钟之前刷新令牌),并且执行该操作后,我的服务呼叫将失败。因为它会在标头中获取旧令牌(过期),但是令牌刷新也将在此之后进行。我如何在angularJS和adal库中处理此问题?我使用以下代码获取刷新令牌

this.authenticationContext.getCachedUser();
    this.authenticationContext.acquireToken(config.clientId, function (errorDesc, token) {
        if (errorDesc) {
            console.log("ErrorDesc", errorDesc);
        }
        if (token) {
            console.log("calling the Web API with the access token", token);
        }
    });

成角度。

2 个答案:

答案 0 :(得分:0)

  1. 检查以确保您的回复网址和重定向uri匹配,并且在您的应用注册和配置/应用设置中均已正确配置。
  2. 在index.js中调用authContext.handleWindowCallback之后,立即添加方法var user = authContext.getCachedUser()。此函数设置adal的用户属性,并且需要在每次页面加载时运行。
  3. 设置令牌生存期。 https://docs.microsoft.com/en-us/azure/active-directory/active-directory-configurable-token-lifetimes

答案 1 :(得分:0)

Azure身份验证令牌每1小时失效一次。您需要在令牌过期之前刷新令牌。为此,在ADAL.js库上有很多角度包装器。请在下面的链接中查看我的答案以获取想法。

MS documentation