2012-02-09 54 views

回答

48

(如由验证回调提供)的用户,设定为在上的req.user请求的性质。

用户的任何属性都可以通过该对象访问,在您的案例中为req.user.usernamereq.user.displayName

如果您使用快递,并要揭露的用户名作为模板中的变量,可以渲染时做到:

app.get('/hello', function(req, res) { 
    res.render('index.jade', { username: req.user.username }); 
}); 
+2

我使用下面的代码为登录: app.post( '/登录', passport.authenticate( '本地',{successRedirect: '/', failureRedirect: '/登录'}) ); 我无法访问'/'页面上的req.user.username。我如何在该页面上访问它? – 2012-02-09 21:46:02

+1

在该页面上是否有'req.user'属性可用?如果没有,这听起来像会议支持未启用。一定要'app.use(passport.session())'中间件,以及配置Express会话中间件。请参阅此页面的“中间件”部分:http://passportjs.org/guide/configuration.html – 2012-02-09 21:49:27

+0

它的工作,谢谢! – 2012-02-09 22:03:54

3

我创建了一个简单的视图助手来访问验证状态和用户信息

var helpers = {}; 

helpers.auth = function(req, res) { 
    var map = {}; 
    map.isAuthenticated = req.isAuthenticated(); 
    map.user = req.user; 
    return map; 
} 

app.dynamicHelpers(helpers); 

这样做,你就可以接取的对象auth对你的看法,例如auth.user.xxxx后。

+8

你怎么称呼这个帮手?你从哪里打电话?谢谢 – 2013-03-23 23:57:12