【问题标题】:Passport.authenticate seems to be stripping partials headerPassport.authenticate 似乎正在剥离部分标题
【发布时间】:2020-01-11 20:13:56
【问题描述】:

我正在尝试使用 NodeJS、Express 和 Mongoose 构建身份验证部分。

我使用护照、本地护照和本地护照猫鼬。

最初,我认为它可能与 express-session 有关,因此我尝试将其替换为 cookie-session 但没有骰子。

在验证新注册用户并将他们重定向到仪表板后,仪表板无法正确呈现。似乎不包括我作为部分的标题。未应用样式,并且包含在页脚中的脚本在第 1 行生成错误 -> $ 未定义。

我已将 app.js 文件配置为:

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

我的用户架构中有这个:

userSchema.plugin(passportLocalMongoose, {
usernameField : "email"
});

我把它放在我的用户路由中: (它也曾经在 app.js 文件中,但结果相同)

passport.use(User.createStrategy());
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());


.
.
} else {
passport.authenticate("local")(req, res, function() {
                res.redirect(req.user.email)
            })
.
.

如果我在没有对用户进行身份验证的情况下执行 res.redirect(req.user.email),则页面呈现应有的状态,因此这告诉我它很可能是由于 passport.authenticate() 导致的。

任何建议将不胜感激。让我知道是否需要包含更多内容,但我尽量减少内容,因为有很多与此问题无关的内容。

【问题讨论】:

    标签: node.js express passport.js passport-local


    【解决方案1】:

    终于找到了导致这种行为的原因。我已将 req.user 设置为 res.locals.currentUser 并在正文的标题部分使用它。不知道为什么这现在不起作用,因为我之前已经让它工作了......也许它与 EJS 有关,但无论哪种方式,在去除一些不必要的部分后它现在又可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多