2012-02-09 10 views

risposta

48

utente (come fornito dal callback verificare), è impostata come una proprietà su richiesta a req.user.

È possibile accedere a qualsiasi proprietà dell'utente tramite tale oggetto, nel proprio caso req.user.username e req.user.displayName.

Se stai usando espresso, e si vuole esporre il nome utente come una variabile all'interno di un modello, che può essere fatto durante il rendering:

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

Sto usando il seguente codice per il login: app.post ('/ login', passport.authenticate ('locale', {successRedirect: '/', failureRedirect: '/ login'}) ); Non riesco ad accedere a req.user.username sulla pagina '/'. Come posso accedervi su quella pagina? –

+1

La proprietà 'req.user' è disponibile in quella pagina? In caso contrario, sembra che il supporto di sessione non sia abilitato. Assicurati di utilizzare il middleware 'app.use (passport.session())', oltre a configurare il middleware di sessione Express. Vedi la sezione "Middleware" di questa pagina: http://passportjs.org/guide/configuration.html –

+0

Funziona, grazie! –

3

ho creato un semplice view helper di avere accesso a stato di autenticazione e l'utente le informazioni

var helpers = {}; 

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

app.dynamicHelpers(helpers); 

dopo aver fatto che si sarà in grado di acess l'oggetto auth sui vostri punti di vista, per esempio auth.user.xxxx.

+8

Come si chiama questo helper? E da dove lo chiami? Grazie –