47

$httpProviderヘッダーを外部に設定する方法はありangular.module('myApp', []).config()ますか?

ユーザーにログインした後、サーバーからAuth-Tokenを取得しています。これを、後続のすべてのリクエストにHTTPヘッダーとして追加する必要があります。

4

3 に答える 3

67

Angular1.0.xにはデフォルトのヘッダーを使用できます。

$http.defaults.headers.common['Authentication'] = 'authentication';

またはAngular1.1.x+のインターセプターをリクエストします:

myapp.factory('httpRequestInterceptor', function () {
  return {
    request: function (config) {

      // use this to destroying other existing headers
      config.headers = {'Authentication':'authentication'}

      // use this to prevent destroying other existing headers
      // config.headers['Authorization'] = 'authentication';

      return config;
    }
  };
});

myapp.config(function ($httpProvider) {
  $httpProvider.interceptors.push('httpRequestInterceptor');
});

工場/サービスはシングルトンであるため、サービスがインスタンス化された後に「認証」値を動的に変更する必要がない限り、これは機能します。

于 2013-11-29T23:08:42.620 に答える
39
$http.defaults.headers.common['Auth-Token'] = 'token';

headers()キー名を正規化しているようです。

于 2013-01-06T14:49:22.377 に答える
1

@Guriaと@Pangaの上記の応答に追加

config.headers['X-Access-Token'] = $window.sessionStorage.token;

ヘッダーでx-access-tokenをJWT(jsonwebtoken)として使用できます。ユーザーが最初に認証するときに、JWTをセッションストレージに保存します。

于 2016-05-14T10:40:51.887 に答える