我在我的控制器中有这个方法来检查用户是否已登录。它使用passport.js并且工作正常。
exports.isLoggedIn = (req, res, next) => {
if (req.isAuthenticated()) {
next();
return;
}
在我的一个视图中,我希望仅在用户登录时向用户显示某些内容。该视图是页面标题的一部分。如果用户退出,则会向他显示两个按钮"注册"和"登录"。 如果他已登录,则应向他显示" account" (管理他的帐户)和"退出"。
我使用哈巴狗并尝试以下方法。由于函数没有在pug文件中定义,所以它显然不起作用。此外,我不确定这是否是正确的做法。
if !isAuthenticated()
a(href="/register") Register
a(href="/login") Log in
if isAuthenticated()
a(href="/account") Account
a(href="/logout") Log out
答案 0 :(得分:1)
您似乎希望将isAuthenticated的值传递给您的视图。
我自己通常不会使用哈巴狗,但看起来您需要执行以下操作来传递变量:
var isAuthenticated = req.isAuthenticated();
pug.renderFile('template.pug', {
authenticated: isAuthenticated
})
然后在你的pug文件中使用authenticated。