gpt4 book ai didi

node.js - NodeJS : Force user to refresh session after permissions have been changed by another user

转载 作者:太空宇宙 更新时间:2023-11-03 23:54:32 25 4
gpt4 key购买 nike

在我的 NodeJS 应用程序中,我使用 express-session 进行 session ,使用express-mysql-session 将 session 存储到 MariaDB,使用 Passport 进行身份验证,使用 Sequelize 进行 ORM。

我现在遇到的问题是,我不知道如何刷新其权限已被应用程序管理员更改的用户的 session 。

我尝试了类似 req.logIn() 的方法,但这只会刷新正在进行权限更改的管理员的 session 。

我的代码如下所示:

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
});
);
}

有人知道如何刷新其权限已被其他用户更改的用户的 session 吗?

最佳答案

express-mysql-session需要一个表和几个配置为存储 session 信息的字段。

其中一个字段称为expires

如果您将该字段设置为 Date.now(),则用户的 session 应该过期。

更新:

阅读您的评论并查看 through their code 后,我们可以看到DB中session行存储的数据是序列化的JSON。

由于您能够识别该用户在数据库中的 session ,因此您还可以:

  • 读取 session 数据,
  • JSON.parse() 它,
  • 更新 .roles 数组(您所在的属性)保留用户的角色),
  • JSON.stringify() 并将其保存回数据库。

关于node.js - NodeJS : Force user to refresh session after permissions have been changed by another user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57868547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com