0

https://auth0.com/docs/quickstart/spa/angular/no-apiで説明されている auth0 angularjs チュートリアルを完了し、Twitter へのログインに成功しました (トークンを取得しました)。ユーザーのタイムラインなどを取得するために、いくつかのリクエストを twitter API に実行するシード プロジェクトを拡張したいと考えています。

$httpjsonp でリクエストを実行し、Authorization ヘッダーを使用して app.js にリクエスト インターセプターを追加してみました。次のようになります。

ホームコントロール

$http.jsonp('https://api.twitter.com/1.1/statuses/home_timeline.json?callback=JSON_CALLBACK')
.then(function(data) {
    console.log(data);
});

App.js

 .config( function myAppConfig ($routeProvider, authProvider, $httpProvider, $locationProvider, jwtInterceptorProvider, RestangularProvider) {

  ...

  $httpProvider.interceptors.push('jwtInterceptor');

})

.factory('jwtInterceptor', function(store) {
    return {
        request: function(config) {
            config.headers = config.headers || {};
            config.headers.Authorization = 'Bearer ' + store.get('token');
            console.log(config);
            return config;
        }
    };
})

応答は 401 Authorization Required を返します:

リソースの読み込みに失敗しました: サーバーは 401 のステータスで応答しました (認証が必要です) 
https://api.twitter.com/1.1/statuses/home_timeline.json?callback=angular.callbacks._0

私は何を間違っていますか?タイムラインの取得をリクエストする前に、別のことを作成する必要がありますか? たぶん、oauth の動作について混乱していて、リクエストを行うには access_token が必要ですか?

前もって感謝します。

4

1 に答える 1

0

Twitter API を呼び出すときは、API 用の Auth0 トークンではなく、Twitter アクセス トークンを使用して呼び出す必要があります。

その方法を説明するこのドキュメントを確認してください: https://auth0.com/docs/what-to-do-once-the-user-is-logged-in/calling-an-external-idp-api

これが役立つかどうか教えてください:)。

乾杯!

于 2015-05-12T21:30:44.583 に答える