node.js - 为什么我的 MERN / Passport 用户登录不会在成功时重定向?
问题描述
输入正确的登录信息时,它什么也不做。没有错误日志或重定向。
router.post("/login", (req, res, next) => {
passport.authenticate(
"local",
{ successRedirect: "/dashboard" },
(err, user, done) => {
if (!user) {
return res.json(done); //sends error msg ("email not registered", "password incorrect", etc.)
}
}
)(req, res, next);
});
这可能是什么问题?
解决方案
passport.authenticate
接受 2 个参数。如果您选择自定义回调,则删除{ successRedirect: "/dashboard" }
. 代码示例:
app.get('/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err); }
if (!user) { return res.redirect('/login'); }
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect('/users/' + user.username);
});
})(req, res, next);
});
推荐阅读
- firebase - 如何在android中检索应用消息自定义有效负载数据?
- android - ExpandableHeightListView ImageView 项目 layout_height wrap_content 未显示所有图像
- flutter - 如何在现代 shap 设备中修复 appbar 中心小部件
- javascript - 如何选择类中的所有元素,包括动态创建的元素?
- image - 未找到 gh-pages 相对路径
- javascript - 如何使用三元运算符使用react返回jsx?
- reactjs - reactJS useState - 如何在多个代码块中设置变量
- python - 在 Python 中使用 Tkinter 的 .grid() 函数时,sticky="W" 未将文本与窗口左侧对齐
- node.js - 卷挂载在 docker-compose 中的工作原理
- javascript - 删除 y 轴边距