req.user
発信元機能を除くどこにもアクセスできません。Express.jsのPassport.jsのreq.userにアクセスできません
私は、パスポートが認証後にすべてのリクエストにユーザーを添付することを読んだ。
ログインページをスキップして、ユーザーが内部ページにアクセスできないようにするか、セッションが既にアクティブな場合は、ユーザーページにリダイレクトする必要があります。この2つのことは、すべてのミドルウェアでreq.user
にアクセスできる場合にのみ実行できます。
app.js: -
app.post('/',passport.authenticate('local',{failureRedirect: '/'}),
function(req,res,next){
console.log(req.user); //req.user defined here only not in users.js
res.redirect('/users');
});
users.js: -
router.get('/users', function(req, res, next) {
console.log(req.user);//undefined
res.render('users');
});
DeserializeUser: -
passport.deserializeUser(function(id, done) {
db.findById(id, function(err, user) {
done(err, user);
console.log(user) //undefined
});
});
それは追加されましたが、動作しません。 – Red
正確に動作しないものは、 'req.user'は定義されていませんか?ユーザーがあなたの質問にログインしているかどうかを判断するために使用しているミドルウェアを追加できますか? – robertklep
はいreq.userはルートに定義されていません。質問にスニペットを追加しました。 – Red