私はIonic2フロントエンドとノード/エクスプレス/モンゴバックエンドを使用しています。ユーザーにログインするためのPassportローカル戦略を構成し、制限付きエンドポイントにアクセスするためにユーザーが認証されているかどうかを判断するための単純なミドルウェアを構成しました。これは、私がPostmanクライアントでテストするとうまく動作します。しかし、ブラウザからログインしてエンドポイントにアクセスしようとすると失敗します。ブラウザ(Chrome)が "set-cookie"ヘッダー内のCookie値を返すことがわかりますが、Passportは "Cookie"ヘッダーのCookie値を探しているようです。私は私のアプリからGET要求のCookieヘッダーを設定しようとしましたが、明らかにセキュリティ上の理由でこれを行うことはできません。 CookieヘッダーのCookie値を返すようにアプリを設定するにはどうすればよいですか?パスポートローカル戦略でユーザーを認証できません
Middleware
function userAuthenticated(req, res, next){
//returns value from Postman; undefined from app
console.log(req.get('Cookie').toString());
//returns value from app; undefined from Postman
console.log(req.get('set-cookie').toString());
if(req.isAuthenticated()){
return next();
}
res.send([{"message":"not logged in"}]);
}
Protected endpoint
router.get('/books', userAuthenticated, function (req, res, next) {
Book.find({}, function(err, docs){
if(err) {
res.send(err);
} else {
res.json(docs);
//next();
}
})
});