在会话存储中使用多个数据库

时间:2018-08-06 16:41:14

标签: node.js sequelize.js express-session

我正在使用许多数据库,在每个数据库中,我有超过4万名用户。

我在每个数据库中都有一个会话表(用于快速会话)

现在这就是我想做的事

检查用户是否已通过身份验证:我在用户请求中(在请求标头中)收到数据库名称

我想在快速会话中传递数据库名称

  store = new MSSQLStore(
              {
                user: env.DATABASE_USERNAME,
                password: env.DATABASE_PASSWORD,
                server: env.DATABASE_HOST,
                database: req.headers.nombase, // get database name from request
                autoRemove: true
              },

问题是我不知道如何访问数据库名称(从请求)并将其传递给会话中间件

这是我所做的,但是没有用:

app.use( function(req,res,next){
        store = new MSSQLStore(
          {
            user: env.DATABASE_USERNAME,
            password: env.DATABASE_PASSWORD,
            server: env.DATABASE_HOST,
            database: req.headers.nombase, // get database name from request
            autoRemove: true
          },
          {
            ttl: 1000 * 60 * 60 * 24
          }
        );
      req.app.use(session(
        {
          secret: env.SESSION_SECRET,
          resave: false,
          saveUninitialized: false,
          name: env.SESSION_NAME,
          store: store,
          cookie: {
            path: "/",
            httpOnly: true,
            secure: false,
            maxAge: 1000 * 60 * 60 * 24
          }
        }))
        next();
      }
    )

要根据用户的请求检查会话的存在(因为每个用户组都链接到特定的数据库)

因此,当用户发送请求时,我要检查链接到的数据库中的会话

0 个答案:

没有答案