2012-02-09 8 views
23

В nodeJS Я использую модуль паспорта для аутентификации. Я хотел бы показать имя пользователя для текущего пользователя.Nodejs Паспорт показывает имя пользователя

Я попытался следующий код:

passport.displayName 

и

Localstrategy.username 

И для получения дополнительной информации, пожалуйста, также см: http://passportjs.org/docs/profile

Но это не работает. Какие-либо предложения?

Благодаря

ответ

48

Пользователя (в комплекте, поставляемая проверку обратного вызова), устанавливаются в качестве свойства по запросу на req.user.

Любые свойства пользователя могут быть доступны через этот объект, в вашем случае req.user.username и req.user.displayName.

Если вы используете Express, и хотите, чтобы выставить имя в качестве переменной в шаблоне, что может быть сделано при визуализации:

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

Я использую следующий код для входа в систему: app.post ('/ логин', passport.authenticate ('местный', {successRedirect: '/', failureRedirect: '/ логин'}) ); Я не могу получить имя пользователя req.user.us на странице '/'. Как я могу получить его на этой странице? –

+1

Это свойство 'req.user', доступное на этой странице? Если нет, похоже, что поддержка сеанса не включена. Обязательно используйте 'app.use (pass.session()) промежуточное программное обеспечение, а также настройте промежуточное программное обеспечение Express. См. Раздел «Middleware» на этой странице: http://passportjs.org/guide/configuration.html –

+0

Он работает, спасибо! –

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

Как вы называете этого помощника? И откуда вы это называете? благодаря –