如何在客户端 javascript 中访问 Passport 的 req.user 变量?
How do I access Passport's req.user variable in client side javascript?
我在我的简单 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
});
});
我想做的是在我的 public 目录中的客户端 js 文件中确认登录用户的用户名。使该变量在该文件中可用的最简单和最直接的方法是什么?
谢谢
由于 passport.js
使用 cookie 维护会话,
您可以在应用程序中添加一个简单的路由,以 json 格式提供当前记录的用户数据:
app.get('/api/user_data', function(req, res) {
if (req.user === undefined) {
// The user is not logged in
res.json({});
} else {
res.json({
username: req.user
});
}
});
并通过您的客户端 javascript 使用 jQuery.getJSON() 或任何其他可以 GET 请求 json 内容的方法访问它。
$.getJSON("api/user_data", function(data) {
// Make sure the data contains the username as expected before using it
if (data.hasOwnProperty('username')) {
console.log('Usrename: ' + data.username);
}
});
我在我的简单 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
});
});
我想做的是在我的 public 目录中的客户端 js 文件中确认登录用户的用户名。使该变量在该文件中可用的最简单和最直接的方法是什么?
谢谢
由于 passport.js
使用 cookie 维护会话,
您可以在应用程序中添加一个简单的路由,以 json 格式提供当前记录的用户数据:
app.get('/api/user_data', function(req, res) {
if (req.user === undefined) {
// The user is not logged in
res.json({});
} else {
res.json({
username: req.user
});
}
});
并通过您的客户端 javascript 使用 jQuery.getJSON() 或任何其他可以 GET 请求 json 内容的方法访问它。
$.getJSON("api/user_data", function(data) {
// Make sure the data contains the username as expected before using it
if (data.hasOwnProperty('username')) {
console.log('Usrename: ' + data.username);
}
});