web-dev-qa-db-fra.com

Nodejs Passport display nom d'utilisateur

Dans nodeJS, j'utilise le module de passeport pour l'authentification. Je souhaite afficher le nom d'utilisateur de l'utilisateur actuellement connecté.

J'ai essayé le code suivant:

passport.displayName

et

Localstrategy.username

Et pour plus d'informations, veuillez également consulter: http://passportjs.org/docs/profile

Mais ça ne marche pas. Aucune suggestion?

Merci

25
The Code Buccaneer

L'utilisateur (tel qu'il est fourni par le rappel de vérification) est défini en tant que propriété dans la demande à req.user.

Toutes les propriétés de l'utilisateur sont accessibles via cet objet, dans votre cas, req.user.username et req.user.displayName.

Si vous utilisez Express et souhaitez exposer le nom d'utilisateur en tant que variable dans un modèle, vous pouvez le faire lors du rendu:

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

J'ai créé un assistant de vue simple pour accéder au statut d'authentification et aux informations utilisateur.

var helpers = {};

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

app.dynamicHelpers(helpers);

Après cela, vous pourrez accéder à l’objet auth sur vos vues, par exemple auth.user.xxxx.

3
Eduardo Nunes

Les aides ne sont pas pris en charge avec Express v4.x

Une bonne alternative consiste à créer un middleware tel que:

app.use((req, res, next) => {
    res.locals.user = req.user;
    next();
});

Ensuite, vous pouvez utiliser la variable "utilisateur" dans vos vues.

0
pjehan

Cela pourrait aider Req.session.passport.user

0
Code Tree