webentwicklung-frage-antwort-db.com.de

Nodejs Passport-Benutzername

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

25

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 });
});
50
Jared Hanson

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.

3
Eduardo Nunes

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 %>  
1
ipungdev

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.

0
pjehan

Dies könnte helfen Req.session.passport.user

0
Code Tree