web-dev-qa-db-ja.com

Nodejs Passport表示ユーザー名

NodeJSでは、パスポートモジュールを認証に使用しています。現在ログインしているユーザーのユーザー名を表示したいと思います。

私は次のコードを試しました:

passport.displayName

そして

Localstrategy.username

また、詳細については、以下も参照してください。 http://passportjs.org/docs/profile

しかし、それは機能していません。助言がありますか?

ありがとう

25

ユーザー(検証コールバックによって提供される)は、req.userで要求のプロパティとして設定されます。

ユーザーの任意のプロパティには、そのオブジェクト、場合によってはreq.user.usernameおよびreq.user.displayNameを介してアクセスできます。

Expressを使用していて、ユーザー名をテンプレート内の変数として公開する場合は、レンダリング時に実行できます。

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

認証ステータスとユーザー情報にアクセスできるシンプルなビューヘルパーを作成しました

var helpers = {};

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

app.dynamicHelpers(helpers);

その後、ビューのオブジェクトauthにアクセスできます。たとえば、auth.user.xxxx

3
Eduardo Nunes

ルートコード-

router.get('/', ensureAuthenticated, function(req, res){
  res.render('administrator/dashboard',{title: 'Dashboard', user:req.user.username });
  console.log(req.user.username);
});

.ejsファイルコード-

Welcome:  <%= user %>  
1
ipungdev

ヘルパーはExpress v4.xではサポートされていません

代わりに、次のようなミドルウェアを作成することをお勧めします。

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

次に、ビューで「user」変数を使用できます。

0
pjehan

これはreq.session.passport.userに役立つ場合があります

0
Code Tree