【问题标题】:express/jade get current user in viewexpress/jade 获取当前用户在视图中
【发布时间】:2012-02-26 08:44:35
【问题描述】:

我有一个this 示例的简单 nodejs/express 应用程序。在该视图中检查everyauth.loggedIn 变量,但在我的应用程序中我不使用everyauth 模块,而是使用以下代码:

req.session.auth = user;

在这种情况下,如何在视图中访问 req.session.auth?

【问题讨论】:

标签: node.js express pug


【解决方案1】:

您需要使用dynamicHelper 来公开会话对象(或会话对象本身)中的任何内容。你可以在你的 app.js 中做这样的事情:

app.dynamicHelpers({
  auth: function(req, res){
    return req.session.auth;
  }
});

然后在您的视图中,您将拥有一个指向会话对象的auth 变量。例如:

You are logged in as <%= auth.name %>

【讨论】:

  • 谢谢。这种方法是否存在任何安全问题?
  • 它只是一个暴露给你视图的辅助方法,所以我想不出任何安全问题。不过,我通常会遵循只公开我需要的内容的规则。
【解决方案2】:

只是添加一些信息,Scott 的回答是让“auth”对象在您的所有视图中都可用(Express' Dynamic Helpers doc),但如果您只想在一个特定视图中使用它,您可以使用渲染方法中的本地人传递它(Express' res.render doc):

res.render('yourView', { auth: req.session.auth });

【讨论】:

    猜你喜欢
    • 2012-09-25
    • 2014-06-20
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多