2012-02-09 79 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