我正在使用许多数据库,在每个数据库中,我有超过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();
}
)
要根据用户的请求检查会话的存在(因为每个用户组都链接到特定的数据库)
因此,当用户发送请求时,我要检查链接到的数据库中的会话