2014-06-12 40 views
1

我想查詢的Visual Studio Online中的REST API,並希望在此msdn article描述通過OAuth授予我的用戶:問題與Visual Studio在線的OAuth無法獲得訪問令牌

的Visual Studio Online使用Oauth 2.0協議爲用戶授權您的應用程序並生成訪問令牌。從應用程序調用REST API時使用此標記。

我使用JavaScript來嘗試實現這一目標如下(略去了和代碼的onload功能/ clientSecret似乎被設置爲正確的值):

var xhr = new XMLHttpRequest(); 
var params = 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer' + 
'&client_assertion={' + clientSecret + '}' + 
'&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer' + 
'&assertion={' + code +'}' + 
'&redirect_uri=' + encodeURIComponent(redirectUri); 
xhr.open('POST','https://app.vssps.visualstudio.com/oauth2/token'); 
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
xhr.setRequestHeader('Accept', 'application/json'); 
xhr.onload = //onloadfunction 
xhr.send(params); 

然而,我不斷收到以下響應:

POST https://app.vssps.visualstudio.com/oauth2/token 400(錯誤請求) { 「錯誤」: 「invalid_client」, 「ErrorDescription中」: 「無效的客戶端的身份驗證令牌」}

我相信我是缺少在這裏簡單的東西。我嘗試了各種組合,但似乎沒有任何幫助。

回答

3

卸下花括號{}圍繞客戶斷言和斷言值。

而且,在一般情況下,你不應該使用這種形式的OAuth的授權在一個基於JavaScript的應用程序的用戶(因爲你沒有辦法,以確保您的應用程序的客戶端密鑰)。