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
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 });
});
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
.
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.
Cela pourrait aider Req.session.passport.user