2014-10-31 58 views
0

我在我的Nodejs應用程序中使用adal-node包進行Azure AD驗證。 URL:https://www.npmjs.org/package/adal-nodeNodejs - ADAL包問題

我正在使用acquireTokenWithAuthorizationCode方法來獲取令牌,它工作正常。 當我的驗證碼過期時,我想使用下面的方式刷新我的令牌。 authenticationContext.acquireTokenWithRefreshToken(_tokenData.refreshToken,authdata.clientId,authdata.resource,callback)。

但是當我運行這段代碼時,它給了我下面的錯誤。 「獲取令牌請求返回HTTP錯誤:400和服務器響應:{」 錯誤 「:」 INVALID_REQUEST 「 」ERROR_DESCRIPTION「:」 AADSTS90014:請求體必須包含以下參數: 'client_secret或client_assertion'

該方法不會接受客戶端祕密作爲其參數,但它仍然抱怨它需要客戶端密鑰。

你能幫忙嗎?

感謝 阿尼爾

回答

0

不幸的是,庫不支持您的方案現在。您正在使用的函數acquireTokenWithRefreshToken適用於不需要客戶端密鑰的OAuth公共客戶端,但您的應用程序是一個OAuth機密客戶端。

我在GitHub倉庫中提交了以下問題,以跟蹤是否需要添加支持您的方案的新方法。

https://github.com/AzureAD/azure-activedirectory-library-for-nodejs/issues/22

+0

Thanks Rich。 - Anil – 2014-11-01 21:57:42

+0

Hi Rich,當我的授權碼過期而不是acquireTokenWithRefreshToken方法時,我可以使用acquireTokenWithClientCredentials方法嗎?這是否會以相同的方式再次獲取令牌?這兩種方法有什麼區別? – 2014-11-02 18:23:19

+0

acquireTokenWithClientCredentials僅用於對服務器進行身份驗證。它不需要刷新令牌參數,因此它不會生成與獲得授權碼的用戶關聯的令牌。因此,您將無法訪問該用戶資源。 – 2014-11-04 03:23:36