我根据在线教程使用 Node、Express 和 Passport 创建了一个简单的用户登录应用程序。登录工作正常,但我想获取当前登录用户的用户名,但我似乎无法正常工作。
我的 app.js 中有以下内容:
/// Configuring Passport
var passport = require('passport');
var expressSession = require('express-session');
app.use(expressSession({
secret: 'cookie_secret',
name: 'cookie_name',
proxy: true,
resave: true,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session({
secret: 'cookie_secret',
name: 'cookie_name',
proxy: true,
resave: true,
saveUninitialized: true
}));
从我在类似帖子中读到的内容来看,我需要公开用户名,以便我可以在其他文件中使用它。我试图在我的 app.js 中这样做:
app.get('/home', function(req, res) {
res.render('home.jade', { username: req.user.username });
});
Home 是一条我想使用用户名的路由,我正尝试通过如下所示的警报访问用户名:
alert(req.user.username);
这不起作用,请求对象未定义...我不确定我缺少什么?
设法让这个工作。在我的 app.js 中我有:
app.get('/home', function(req, res) {
res.render('home.jade', { username: req.user.username });
});
然后在我的/home 路由中,我可以通过以下方式访问用户名:
req.user.username
最佳答案
你混合了两件事,一个是客户端,另一个是服务器端,两者都使用 javascript 但是在客户端渲染服务器端代码你不能直接在客户端使用。您必须像处理
一样传递给 Viewapp.get('/home', function(req, res) {
res.render('home.jade', { username: req.user.username });
});
在这里您将用户名变量暴露给 View
在 Jade 文件中你应该这样做
alert(#{username})
代替
alert(req.user.username)
关于javascript - 使用 Passport JS 获取当前登录的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121782/