2016-11-18 5 views
0

私はPassportを使用してMy projecを認証しています。認証が成功すると、ユーザーは "/ home"に転送されます。この時点で、要求にはユーザーオブジェクトが含まれています。しかし、いったんリダイレクトすると、req.user.emailは未定義です。 : '(req.userのプロパティを取得できません。

exports.test= function (req, res) { 
    console.log(req.user);  
    console.log(req.user.id); 
    console.log(req.user.email); 

} 

端末表示:

ModelBase { 
     attributes: 
     { id: 18, 
     first_name: 'test', 
     last_name: 'test', 
     email: '[email protected]', 
     password: '18fa9883b74578494b578048273e66d2edbf57b6', 
     active: 1, 
     created: Mon Oct 17 2016 08:15:58 GMT+0700 (SE Asia Standard Time), 
     modified: Thu Nov 17 2016 10:59:00 GMT+0700 (SE Asia Standard Time), 
     salt: '140996000870', 
     Balance: 0, 
     ExpireDate: Mon Apr 02 2018 00:00:00 GMT+0700 (SE Asia Standard Time), 
     used: 0, 
     donate: 1 }, 
     _previousAttributes: 
     { id: 18, 
     first_name: 'test', 
     last_name: 'test', 
     email: '[email protected]', 
     password: '18fa9883b74578494b578048273e66d2edbf57b6', 
     active: 1, 
     created: Mon Oct 17 2016 08:15:58 GMT+0700 (SE Asia Standard Time), 
     modified: Thu Nov 17 2016 10:59:00 GMT+0700 (SE Asia Standard Time), 
     salt: '140996000870', 
     Balance: 0, 
     ExpireDate: Mon Apr 02 2018 00:00:00 GMT+0700 (SE Asia Standard Time), 
     used: 0, 
     donate: 1 }, 
     changed: {}, 
     relations: {}, 
     cid: 'c1', 
     id: 18, 
     _knex: null } 
18 
undefined 

答えて

2

ためJSONでemailは、トップレベルのキーではありませんconsole.log(req.user.attributes.email);で試してみてください。そのattributesキーの中にフェッチされて

+1

ありがとうございました – beginerdeveloper

1

使用」。。。 「req.user.email」の代わりに「req.user.attributes.email」

1

私は同じ問題を抱えていましたが、私はあなたのすべての属性serオブジェクト。

ですから、このような属性を反復することができますreq.userオブジェクトは通常のものではない、と属性がreq.user._doc内で実際に

ですが判明:

Object.keys(req.user._doc).forEach(function(each_attribute){ 
    console.log('each_attribute', each_attribute) 
}) 

私はそれが役に立ちそうです。

関連する問題