2012-02-09 14 views

Odpowiedz

48

użytkownika (jak dostarczany przez zwrotnego potwierdzenia), jest ustawiona jako własność na życzenie w req.user.

Wszelkie właściwości użytkownika są dostępne za pośrednictwem tego obiektu, w twoim przypadku: req.user.username i req.user.displayName.

Jeśli używasz Express, a chcą narażać użytkownika jako zmiennej w szablonie, które można zrobić przy renderowaniu:

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

Używam następujący kod do logowania: app.post ('/ login', passport.authenticate ('lokalne', {successRedirect: '/', failureRedirect: '/ login'}) ); Nie mogę uzyskać dostępu do pliku req.user.username na stronie '/'. Jak mogę uzyskać do niego dostęp na tej stronie? –

+1

Czy na tej stronie jest dostępna właściwość 'req.user'? Jeśli nie, to wygląda na to, że obsługa sesji nie jest włączona. Upewnij się, że zainstalowano oprogramowanie pośredniczące "app.use (passport.session())", a także skonfiguruj oprogramowanie pośrednie sesji Express. Zobacz sekcję "Middleware" na tej stronie: http://passportjs.org/guide/configuration.html –

+0

Działa, dzięki! –

3

stworzyłem prosty widok pomocnika aby mieć dostęp do stan uwierzytelnienia użytkownika i informacje

var helpers = {}; 

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

app.dynamicHelpers(helpers); 

Po wykonaniu tej czynności będzie można acess obiekt auth na swoich poglądów, na przykład auth.user.xxxx.

+8

Jak nazwać tego pomocnika? I skąd to nazywasz? Dzięki –

Powiązane problemy