2013-01-06 9 views

答えて

39
$http.defaults.headers.common['Auth-Token'] = 'token'; 

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

+3

あなたは、キー名を正規化することによって何を意味するかを詳しく説明できますか? – Webnet

+4

headers()メソッドを使用してヘッダを取得する場合、キー「Auth-Token」は小文字になり、「auth-token」になります。どちらが紛らわしいですか。 – lucassp

+0

@lucasspこれかもしれない - http://stackoverflow.com/questions/5258977/are-http-headers-case-sensitive – KrIsHnA

65

あなたは、角1.0.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'); 
}); 

:角度バージョン1.1.x +ため

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

またはリクエストインターセプタサービスがインスタンス化された後にあなたの '認証'値を動的に変更する必要がない限り、動作します。

+0

私はサービスとしてこれが好きです。ありがとう! – grant

+2

少し混乱します。これを私のアプリにどのように統合するのですか?依存関係としてリストし、 '$ http'の代わりに' $ httpProvider'を使う必要がありますか? –

+0

$ httpProviderをあなたのアプリケーションモジュールからハングする設定メソッドに注入します。プロバイダは、Angularによってコントローラなどに注入される前にサービスを設定する方法です。 – Greg

1

JWT(jsonwebtoken)としてヘッダにX-アクセストークンを使用することができ@Guriaと@Panga

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

一つの上記応答に追加します。 ユーザーが初めて認証されたときにJWTをセッションストレージに格納します。

関連する問題