从未调用过acquireToken回调

时间:2017-03-31 17:07:19

标签: javascript vue.js adal adal.js

initial post将adal.js与Vue.js集成后,我取得了一些进展。我已成功登录,并且我希望设置的属性在localStorage中设置。

然而,拨打acquireToken的电话从不会拨打我通过的回叫。代码如下所示:

let url = 'https://api.webserver.com/api/endpoint';

authContext.acquireToken(url, (err, token) => {
  console.log(`acquiring token for ${url}`);
  console.log(err, token);
});

查看adal.js的来源,acquireToken的方法签名如下:

AuthenticationContext.prototype.acquireToken(resource, callback)

没有调用回调。 url值是否超过了方法所期望的值?我不清楚这一点。

感谢您的帮助。提前谢谢!

2 个答案:

答案 0 :(得分:1)

根据您的init帖子,您已完成Azure AD应用程序的配置,您可以尝试将url替换为client_id下的acquireToken()功能。< / p>

根据adal for js的源代码,acquireToken()L515调用getCachedToken()

函数getCachedToken()将通过var token = this._getItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource);在浏览器的会话中获取令牌。成功登录后,您可以检查浏览器的DEV TOOL中的所有AD信息。我们可以发现这里的资源是client_id格式。

enter image description here

答案 1 :(得分:1)

在AdalJS 1.0.13版中,如果您想要回调,可以使用以下代码:

                authContext.acquireToken('https://api.webserver.com/api/endpoint').then(function (token) {
                    console.log(token)
                },function(error){
                    console.log('Failed to acquire token');  
                }
            );