2016-04-13 8 views
2

ポストのリクエストヘッダは、このような認証を含めて、私は、HTTPオブジェクトを操作することができました:Angular2 HTTPデフォルトのヘッダー、共通の認証トークン

$http.defaults.headers.common['Authorization'] = "Token " + sessionobject.token; 

return $http({ 

    method: 'POST', 
    url: SERVER_ENVIRONMENT + 'updatepath', 
    headers: { 
     'Content-Type': 'application/json', 
     'Data-Type': 'json' 
    }, 
    data: { 
     id : id, 
     ... 
    } 
}) 

あなたはでequvilantを見つける私を助けてください同じ投稿要求を生成する角度2?事前

+0

すでに答え:http://stackoverflow.com/questions/34464108/angular2-set-headers-for-every詳細について

はこの質問を見て-要求 – thegio

答えて

1

Chandermani氏は自分の質問で独自のオプションを指定できると述べています。マージメソッドをオーバーライドすることで、物事を静的に、またはより動的に定義することができます。後者では、現在の要求に対して提供されたオプションに基づいて要求オプションを拡張できます。あなたがトークンを使用するので

、重要な特徴は、彼らが時間の経過後に有効期限が切れていることである。詳細については

はこの質問を見てみましょう。つまり、リフレッシュトークンに基づいてリフレッシュする必要があります。これは、Httpクラスを拡張し、flatMapのような観測可能な演算子を利用することで、Angular2で透過的に行うことができます。

5

中のthnx多くのあなたは、HTTPリクエストのオプションのためのhttpはMyOptions

を選ぶように、このクラスのオーバーライドは、その後、DIに差し込むことができます
class MyOptions extends BaseRequestOptions { 
header:Headers=new Header({ 
'Authorization': 'Bearer ' + localStorage.getItem('token') 
}); 
} 

呼び出して、すべてのカスタムヘッダを提供するために、Angular2クラス BaseRequestOptionsを拡張します
bootstrap(App, [HTTP_PROVIDERS, provide(RequestOptions, {useClass: MyOptions})]); 

このアプローチの問題点は、ブートストラッピング時にトークンを使用できることです。これはほとんどの場合そうではありません。

もう1つの方法は、カスタムhttpサービスを作成することです。このような実装の1つがここにありますhttps://gist.github.com/chandermani/9166abe6e6608a31f471

関連する問題