私はfetch on reactを使用してクライアントログインを実装しようとしています。fetch:フェッチ応答からクッキーを取得する
私は認証にパスポートを使用しています。私が"username or password is wrong"
のような私のエクスプレスサーバからエラーメッセージを受信できるようにするために、私がfetch
を使用していて普通のform.submit()
でない理由があります。
私はパスポートがflash
メッセージを使ってメッセージを返信できることを知っていますが、flash
にはセッションが必要なので、私はそれらを避けたいと思います。
しかし、クロムは、クッキーを設定していない、:あなたがChromeの開発ツール上で見ることができるように
fetch('/login/local', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: this.state.username,
password: this.state.password,
}),
}).then(res => {
console.log(res.headers.get('set-cookie')); // undefined
console.log(document.cookie); // nope
return res.json();
}).then(json => {
if (json.success) {
this.setState({ error: '' });
this.context.router.push(json.redirect);
}
else {
this.setState({ error: json.error });
}
});
サーバは、うまくクッキーを送信アプリケーション - > Cookies - > localhost:8080: "サイトにはCookieがありません"と表示されます。
どのように動作させるか考えてください。
あなたは、サーバー側のコードを投稿することができますか? – LuisPinto
これはあなたのために役立つかもしれません。http://stackoverflow.com/questions/36035445/unable-to-set-cookie-in-browser-using-request-and-express-modules-in-nodejs/36038537 – LuisPinto
問題は、私の答えを参照してください。ありがとう、btw。 –