【发布时间】:2015-03-21 17:09:16
【问题描述】:
我在我的简单 Express 应用上设置了 Passport 身份验证,它工作正常,我让它在我的索引页面上显示 req.user,如下所示:
<% if (!isAuthenticated) { %>
<a id="signIn" href="/login">Sign In</a>
<% } else { %>
<h3 id="welcomeMsg"><%=user.id%></h3>
<h2 id="userBalance"><%=user.balance%></h2>
<a href="/logout">Log Out</a>
<% } %>
在 index.js 中:
app.get('/', function(req, res){
res.render('index', {
isAuthenticated: req.isAuthenticated(),
user: req.user
});
});
我要做的是在我的公共目录中的客户端 js 文件中确认登录用户的用户名。使该变量在该文件中可用的最简单和最直接的方法是什么?
谢谢
【问题讨论】:
-
你现在有什么问题?您只需要将它公开给您的客户端 JS,对吗?把它放在一个名称间隔的对象/模块/等中。
-
你是说我需要将它存储在我的 index.js 中的一个对象中,并且它可以从客户端 js 文件中获得?我尝试了几种不同的方法,但它总是显示未定义,我不完全明白为什么我可以在我的 html 中使用 ejs 毫无问题地打印出来。
-
不,我并不是说客户端和服务器是不同的进程。您需要渲染 JS,然后从客户端访问。就我个人而言,我更喜欢通过额外的 http 调用来获取您已经知道的数据。
标签: javascript node.js express passport.js