は、フロントエンド要求の場合、withCredentials
の設定フラグをtrue
に設定する必要があります。
あなたが角度の$http.post(url,data [,config])
や$http.get(url [,config])
を使用している場合、ある、config
オブジェクトがtrueにプロパティwithCredentials
セットが含まれていることを確認してください。これにより、ブラウザは完全なページ訪問の場合と同じ方法でクッキーを使用するよう指示されます。例えば
、
$http.post('/api/login',{username:'myusername',password:'mypassword'},{withCredentials:true})
サイト/アプリの/api/login
ルートにデータ{username:'myusername',password:'mypassword'}
をpost
だろうと、あなたはフラスコ・ログインを使用していて、ログインしている場合は、フラスコを知っているだろう。
あなたはあなたのアプリケーションのどこかで
$httpProvider.defaults.withCredentials=true
を設定することにより、すべて$http
サービス要求のために、この動作を設定することができます。現在、私は私に適切と思われる私のapp.config
ブロック、内のコードの行を持っている:
var myApp = angular.module('myApp');
myApp.config(function ($httpProvider) {
$httpProvider.defaults.withCredentials = true;
});
(この記事は、フラスコについてですので、人々はそれができるように角度によるフォームデータを送信することもできます類似の溶液fyiを有するrequest.form
に見いだすことができる。)
私は同じことをやってに興味を持っています –
を「私はそこにトークンを格納し、認証トークンヘッダにそのトークンを送信して、私のangularJSフロントエンドにトークンを送ることを計画してい」私がやってに興味同じこと!これを達成するために(d)request_loaderをどのように使用するかを明確にすることはできますか? Angularの$ httpは他のブラウザのリクエストと同じCookieを自動的に使用しますか? 「私のangularJSフロントエンドにトークンを送る」の部分を行う必要がありますか?私の懸念は、セッションIDが別のヘッダーやパラメータ(なぜ私はrequest_loaderが必要なのでしょうか)で送信される可能性がありますが、ログインしているブラウザは自動的にそれを送信しませんか? –
こんにちはザック、遅れて申し訳ありません。私が理解しているところから、実際にはユーザーとリクエストローダーの両方を持つ必要はありません。ユーザーローダーは非常に簡単で、セッションに帰属するuser_idをチェックし、そのuser_idがユーザーデータベースに存在し、認証されているかどうかを確認します。要求ローダーは、要求authorizationheaderをチェックし、同じ認証を行います。したがって、あらゆる種類のユーザーセッション管理を持つほとんどのアプリケーションでは、要求ローダーは必要ありません。あなたはトークンを送る必要はありません...フラスコと角度ジェスは、それらを自動的にuser_loaderで管理します – galeej