2013-10-31 63 views
0

我目前正在開發一個適配器調用,它在Authorization標頭中使用OAuth令牌。該請求在FireFox RestClient中正常工作,並且xhr獲得...但從Worklight適配器失敗,並顯示用戶需要登錄的錯誤。如果用戶未通過授權標頭,則會看到與用戶相同的錯誤。適配器中的IBM Worklight Adapters和OAuth - 標頭值

WL適配器:

function getFriends(accessToken) { 
    var authtok = 'Bearer ' + accessToken; 
    var input = { 
     method : 'get', 
     headers: {Authorization: authtok}, 
     path : '/connections/opensocial/rest/people/@me/@self' 
    }; 
    return WL.Server.invokeHttp(input); 
} 

任何人看到這樣的錯誤?有沒有辦法跟蹤工作燈適配器調用來檢查發送到請求中的頭是否如預期的那樣?

回答

2

看起來您的服務器也期望在標頭中顯示主機名。試着改變你的輸入這樣的:

var input = { 
     method : 'get', 
     returnedContentType : 'json', 
     path : '/connections/opensocial/rest/people/@me/@self', 
     headers: { 
      'Authorization': authtok, 
      Host: "HOSTNAME THAT IS USED IN THE .XML FILE" 
     } 
    }; 

所以,如果你的適配器的XML文件是這樣的:

<connectionPolicy xsi:type="http:HTTPConnectionPolicyType"> 
      <protocol>https</protocol> 
      <domain>jeremy.server.whatever.com</domain> 
      <port>443</port>  
      -->  
</connectionPolicy> 

那麼你的標題應該是這樣的:

headers: { 
    'Authorization': authtok, 
    Host: "jeremy.server.whatever.com" 

}

+0

謝謝!!這個伎倆。 – ldeluca

相關問題