NodeJS Passport display nom d'utilisateur

Dans nodeJS, j'utilise le module passport pour l'authentification. Je voudrais 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 cela ne fonctionne pas. Toutes les suggestions?

Merci

24
demandé sur Michael_Scharf 2012-02-09 21:57:36

3 réponses

L'utilisateur (tel que fourni par le rappel verify), est défini comme une propriété sur la requête à 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 que vous souhaitez exposer le nom d'utilisateur en tant que variable dans un modèle, cela peut être fait lors du rendu:

app.get('/hello', function(req, res) {
    res.render('index.jade', { username: req.user.username });
});
48
répondu Jared Hanson 2012-02-09 21:12:53

J'ai créé un assistant de vue simple pour avoir accès à l'état 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
répondu Eduardo Nunes 2012-10-10 19:18:45

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

Une bonne alternative est de créer un middleware tel que:

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

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

0
répondu pjehan 2018-08-21 18:34:59