In nodeJS verwende ich das Passmodul zur Authentifizierung. Ich möchte den Benutzernamen des aktuell angemeldeten Benutzers anzeigen.
Ich habe folgenden Code ausprobiert:
passport.displayName
und
Localstrategy.username
Weitere Informationen finden Sie auch unter: http://passportjs.org/docs/profile
Das funktioniert aber nicht. Irgendwelche Vorschläge?
Vielen Dank
Der Benutzer (wie vom Überprüfungsrückruf bereitgestellt) wird in der Anforderung unter req.user
als Eigenschaft festgelegt.
Auf alle Eigenschaften des Benutzers kann über dieses Objekt zugegriffen werden, in Ihrem Fall req.user.username
und req.user.displayName
.
Wenn Sie Express verwenden und den Benutzernamen als Variable in einer Vorlage anzeigen möchten, können Sie dies beim Rendern tun:
app.get('/hello', function(req, res) {
res.render('index.jade', { username: req.user.username });
});
Ich habe einen einfachen View Helper erstellt, um auf den Authentifizierungsstatus und Benutzerinformationen zugreifen zu können
var helpers = {};
helpers.auth = function(req, res) {
var map = {};
map.isAuthenticated = req.isAuthenticated();
map.user = req.user;
return map;
}
app.dynamicHelpers(helpers);
Danach können Sie auf das Objekt auth
in Ihren Ansichten zugreifen, beispielsweise auf auth.user.xxxx
.
Routencode -
router.get('/', ensureAuthenticated, function(req, res){
res.render('administrator/dashboard',{title: 'Dashboard', user:req.user.username });
console.log(req.user.username);
});
.ejs Datei Code -
Welcome: <%= user %>
Helfer werden von Express v4.x nicht unterstützt
Eine gute Alternative ist die Erstellung einer Middleware wie:
app.use((req, res, next) => {
res.locals.user = req.user;
next();
});
Dann können Sie die Variable "user" in Ihren Ansichten verwenden.
Dies könnte helfen Req.session.passport.user