Ana*_*ued 5 servlets node.js express passport.js
我正在使用PassportJS本地策略进行用户身份验证,它的工作完全正常.但是,当我在任何经过身份验证的页面上尝试console.log(req.user)时,我会获得当前登录用户的所有数据库条目详细信息.这是正常的吗?包括哈希密码
{
name: 'Test',
email: 'vxxxxx@gmail.com',
password: '$2a$10$aw2aMtXtrmKHi.kd97c0NeMOu6Y0hlcM4xk2VuqfneLYdEkc676eq',
phone: 9xxxxx6,
_enabled: true,
_id: 5253f326003e55f028000001,
__v: 0
}
Run Code Online (Sandbox Code Playgroud)
我的本地策略定义如下.
passport.use(new strategy(function(username, password, done) {
User.findOne({ "email": username }, function(err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false, { message: 'Unknown user ' + username }); }
if(user._enabled==false) return done(null,false,{message: "Dear "+user.name+", Please verify your email first!"});
if(bcrypt.compareSync(password,user.password)){
return done(null, user);
app.set("userEmail",username);
}
else {
return done(null, false, { message: 'Invalid password' });
}
db.close();
})
}));
Run Code Online (Sandbox Code Playgroud)
这些数据是否有可能被篡改?
是的,它可以被篡改。绑定到 req 对象的用户是使用 deserializeUser 加载的。
请参阅: http: //passportjs.org/guide/configure/和“会话”部分。
| 归档时间: |
|
| 查看次数: |
746 次 |
| 最近记录: |