2016-11-18 46 views
0

我正在使用Passport授权我的项目。成功验证后,用户被定向到“/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不是顶级密钥及其内attributes键与console.log(req.user.attributes.email);尝试

+1

这是工作谢谢 – beginerdeveloper

1

使用“。 req.user.attributes.email“而不是”req.user.email“

1

我有同样的问题,我想迭代你的所有属性ser对象。

原来,req.user对象不是一个正常的,并且属性实际上都在里面req.user._doc

所以,你可以在这样的属性迭代:

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

我希望它有帮助。