2017-03-31 199 views
0

我在initial post關於將adal.js與Vue.js集成後取得了一些進展。我正在成功登錄,並且我期望設置的屬性正在localStorage中設置。acquireToken回調從未調用

但是,對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) 

回調不叫。 值是否傳遞了該方法所期望的值?我對此不清楚。

您的幫助表示讚賞。提前致謝!

回答

1

根據你的init文章,你已經完成了Azure AD應用程序的配置,你可以試着用acquireToken()函數替換urlclient_id

根據adal for js的源代碼,acquireToken()調用getCachedToken()L515

,功能getCachedToken()將獲得通過var token = this._getItem(this.CONSTANTS.STORAGE.ACCESS_TOKEN_KEY + resource);在瀏覽器會話令牌您可以檢查瀏覽器的DEV TOOL所有廣告信息在您成功登錄之後。我們可以發現這裏的資源是以client_id格式。

enter image description here

+0

好吧,我得到了這個工作!但是...令牌似乎沒有正確刷新。我假設連續調用acquireToken將保持令牌更新。但是,會話似乎在大約30分鐘後結束,並且在這種情況下不會調用回調。 –

0

在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'); 
       } 
      ); 
+0

你確定嗎? acquireToken不會返回Promise或任何類型的可接受對象。 –

+0

我目前正在使用它,它適用於我! –

+0

什麼版本的adal.js? –