2017-07-12 28 views
-1

私のNodeJS Expressアプリケーション(羽毛で構築)にあります。私はクライアントの側からクライアントのfetchのクッキーを使って作業しようとしています。私はcooke-parserミドルウェアを使ってExpressを持っています。ブラウザがクッキーを設定していません

私はsame-origincredentialsヘッダを設定しようとしたが、それは動作を停止しました(それは罰金昨日働いた、と数回の今日...しかし、私はそれを私が必要なものにクッキーを構築しようとしているとされてきましたちょうど確実に働くようには思われない)。 enter image description here

:これらは、ヘッダーです

fetch('/setjwt', { method: 'POST', headers: { credentials: 'same-origin' } }); 

:私はそうのような送信要求をテストするために、クロムのdevのツールのコンソールでfetch使用してい

app.post('/setjwt', (req, res, next) => { 
res.cookie('acokie', 'lol'); 
res.status(200); 
res.send(); 
}); 

は、これは私のテスト急行ルートであります

しかし、[アプリケーション]タブにはクッキーが表示されておらず、document.cookieでも利用可能です。

私はこのルートを持っている理由は2つある:

  1. クッキーがどのように動作するかを理解し、Expressの相互運用。
  2. このハックルートを完全に取り除いて、ヘッダー/環境を正しく設定して、羽の認証サービスのSet-Cookieレスポンスヘッダーがブラウザによって尊重されるようにします。

ログインページ上の羽のクライアントは、その残りの実装としてfetchに設定されている、と私は

答えて

0

fetch('/setjwt', { method: 'POST', headers: { credentials: 'same-origin' } });が動作しません設定することができます。

資格情報のプロパティcannot be specified like that with fetch。正しいコードは次のとおりです、再び、それは通常のヘッダ

羽認証サービスがうまくいくようにそれを設定するためとして
fetch(
    '/setjwt', 
    { 
    method: 'POST', 
    credentials: 'same-origin', 
    headers: { whatever: 'somevalue' } 
    }); 

ではありませんので、brushing up on the documentationうまくいけば便利なものを生み出すかもしれないが、私は考えていませんフェザー・レスト・ラッパーをフェッチするとsupports passing non header optionsになります。

関連する問題