在我的NodeJS应用程序中,我将Express-session用于会话,将express-mysql-session用于将会话存储到MariaDB,将Passport用于身份验证,将Sequelize用于ORM。
我现在遇到的问题是,我不知道如何刷新其权限已由应用程序管理员更改的用户的会话。
我尝试过类似的操作,req.logIn()
但这只会刷新正在进行权限更改的管理员的会话。
我的代码如下所示:
editUser = function (req, res) {
var userData.id = req.body.id;
userdata.access = req.body.access;
models.User.update(userData, {where: {id: userData.id}})
.then(function (affectedRows) {
// User has been updated.
// Changes should be active without having the user to log out and log in again
});
);
}
有谁知道我如何刷新其权限已被另一个用户更改的用户的会话?
我在以下线程PassportJS中找到了解决我问题的方法-是否可以为另一个用户更改req.user?
我更新了我passport.deserializeUser()
的数据库请求并重新加载了用户。然后,查询的用户将提交给回调。该函数现在如下所示:
passport.deserializeUser(function(user, done) {
models.User.findOne({where: {id: user.id}})
.then(function(updatedUser) {
done(null, updatedUser);
}, function(err) {
console.error(err);
done(null, user);
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句