首页 > 解决方案 > 如何更新节点js中的会话信息

问题描述

我使用 passport.js 进行会话管理,使用 mysql 进行数据库。

我有多个公司供用户使用。和用户在每个公司都有不同的角色。我将用户角色存储在默认公司的会话中。因为我已经在后端实现了基于用户角色的各种权限。

req.user 会给我以下回复

req.user = {
  id: 2,
  user_name: 'akamboj1@yopmail.com',
  firstname: 'akamboj1',
  lastname: 'akamboj1',
  email_id: 'akamboj1@yopmail.com',
  user_access_token: 'a5049f367613d36eb7e20e9a1f4d4b36',
  is_active: 1,
  created_at: 2018-02-27T05:36:18.000Z,
  user_image: 'profile/images/default.png',
  roles: '2,3,4,5,8' }

当用户切换到其他公司时,我想更改会话中的用户角色。

这是我的护照序列化和反序列化方法

passport.serializeUser(function (user, done) {
        done(null, user.token);
    });

    // used to deserialize the user
    passport.deserializeUser(function (accessToken, done) {
        user.getUserByAccessToken(accessToken, function (err, dbUser) {
            if (err) {
                done(err);
            } else {
                done(null, dbUser[0]);
            }
        });
    });

知道如何更新会话值吗?

标签: node.jssessionpassport.jspassport-local

解决方案


推荐阅读