You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Passport本地策略登录时页面持续加载无响应求助

问题原因及解决方法

你的POST登录路由中,第一个自定义中间件仅打印了req.body,但未调用next()方法,导致请求无法传递到后续的Passport认证中间件和响应处理逻辑,浏览器因此一直处于等待响应的状态。

修复后的代码

router.get("/login", (req, res) => {
    res.render("users/login.ejs");
});

router.post(
    "/login",
    (req, res, next) => { // 添加next参数
        console.log(req.body);
        next(); // 调用next传递请求到下一个中间件
    },
    passport.authenticate("local", {
        failureRedirect: "/login",
        failureFlash: true,
    }),
    async (req, res) => {
        res.send("Welcome You are logged in!");
    }
);

关键说明

  • Express中间件函数必须接收req、res和next三个参数,若需要让请求继续向后传递,必须显式调用next(),否则请求会被挂起,无法返回响应。
  • 你之前的中间件只完成了打印操作,未放行请求,导致Passport的认证逻辑根本没有执行,自然不会有响应返回给浏览器。

内容的提问来源于stack exchange,提问作者Sparsh Maheshwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:30:55