1

AngularJS のバックエンド API を使用したトークン ベースの認証には、次のコードがあります。

$httpProvider.interceptors.push(['$q', '$location', '$localStorage', function($q, $location, $localStorage) {
        return {
            'request': function (config) {
                config.headers = config.headers || {};
                if ($localStorage.token) {
                    config.headers.Authorization = 'Bearer ' + $localStorage.token;
                }
                return config;
            },
            'responseError': function(response) {
                if(response.status === 401 || response.status === 403) {
                    $location.path('/signin');
                }
                return $q.reject(response);
            }
        };
    }]);

これにより、「Authorization」ヘッダーがトークンに設定されます。

ヘッダーの代わりに URL パラメーター (「access_token」という名前) を使用するようにコードを変更するにはどうすればよいですか?

4

1 に答える 1

2

configオブジェクトの引数params – {Object.}を使用する必要があります。

params – {Object.<string|Object>}– URL の後に ?key1=value1&key2=value2 に変換される文字列またはオブジェクトのマップ。値が文字列でない場合は、JSON 化されます。

AngularJS リファレンス ガイド

$httpProvider.interceptors.push(['$q', '$location', '$localStorage', function($q, $location, $localStorage) {
        return {
            'request': function (config) {
                //config.headers = config.headers || {};
                 config.params = config.params || {};
                if ($localStorage.token) {
                   config.params.access_token = $localStorage.token;                        
                   //config.headers.Authorization = 'Bearer ' + $localStorage.token;
                }
                return config;
            },
            'responseError': function(response) {
                if(response.status === 401 || response.status === 403) {
                    $location.path('/signin');
                }
                return $q.reject(response);
            }
        };
    }]);
于 2015-02-28T17:31:06.093 に答える