0

現在、Authorization ヘッダーで OAuth トークンを受け取るアダプター呼び出しに取り組んでいます。要求は、FireFox RestClient と xhr get で正常に機能します... しかし、Worklight アダプターからは失敗し、ユーザーがログインする必要があるというエラーが表示されます。これは、ユーザーが認証ヘッダーを渡さなかった場合に表示されるエラーと同じです。

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);
}

このようなエラーが表示される人はいますか? Worklight アダプターの呼び出しをトレースして、要求に送信されたヘッダーが期待どおりであることを検査する方法はありますか?

4

1 に答える 1

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"

}

于 2013-10-31T17:47:34.663 に答える