NodeJSでは、パスポートモジュールを認証に使用しています。現在ログインしているユーザーのユーザー名を表示したいと思います。
私は次のコードを試しました:
passport.displayName
そして
Localstrategy.username
また、詳細については、以下も参照してください。 http://passportjs.org/docs/profile
しかし、それは機能していません。助言がありますか?
ありがとう
ユーザー(検証コールバックによって提供される)は、req.user
で要求のプロパティとして設定されます。
ユーザーの任意のプロパティには、そのオブジェクト、場合によってはreq.user.username
およびreq.user.displayName
を介してアクセスできます。
Expressを使用していて、ユーザー名をテンプレート内の変数として公開する場合は、レンダリング時に実行できます。
app.get('/hello', function(req, res) {
res.render('index.jade', { username: req.user.username });
});
認証ステータスとユーザー情報にアクセスできるシンプルなビューヘルパーを作成しました
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
。
ルートコード-
router.get('/', ensureAuthenticated, function(req, res){
res.render('administrator/dashboard',{title: 'Dashboard', user:req.user.username });
console.log(req.user.username);
});
.ejsファイルコード-
Welcome: <%= user %>
ヘルパーはExpress v4.xではサポートされていません
代わりに、次のようなミドルウェアを作成することをお勧めします。
app.use((req, res, next) => {
res.locals.user = req.user;
next();
});
次に、ビューで「user」変数を使用できます。
これはreq.session.passport.userに役立つ場合があります