gpt4 book ai didi

javascript - Passport 本地 Mongoose 请求用户未定义

转载 作者:行者123 更新时间:2023-12-02 15:27:55 25 4
gpt4 key购买 nike

我目前在使用 Passport 本地 Mongoose 插件实现 Passport js期间遇到以下问题。帐户创建和登录工作正常。但是,在我登录后,passport 从未将我识别为已登录的用户。

我使用了以下代码:

在我的用户模型中:

User.plugin(passportLocalMongoose);

在app.js中(这个包含顺序正确吗?):

app.use(logger('dev'));
app.use(express.static(path.join(__dirname, 'public')));
app.use(cookieParser('keyboard cat'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(session({ secret: 'keyboard cat' }));

app.use(passport.initialize());
app.use(passport.session());

passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

在我的 route :

router.post('/login', passport.authenticate('local'), function(req, res) {
res.json({ loggedIn: true });
});

它返回 true,但以下内容一直返回 false(登录后):

req.isAuthenticated()

谁能告诉我原因可能是什么?

谢谢!

最佳答案

您可能想尝试 Express 中间件,正如评论中所建议的那样。

例如:

 function isAuthenticated(req, res, next) {
if(req.isAuthenticated()) {
return next()
} else {
// redirect users to login page
}
}

app.get('/anypage', isAuthenticated, function(req, res) {
// some reoute logic
})

关于javascript - Passport 本地 Mongoose 请求用户未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33552416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com