如何基于nodejs在url上创建不同的会话?

raj*_*war 5 session session-cookies node.js passport.js

我们的网站有两个部分:

1. admin (content management)  
2. site
Run Code Online (Sandbox Code Playgroud)

管理部分将有网址'/ admin',网站部分有网址'/'.

示例:我的网站名称为www.example.com,然后管理部分网址为"www.example.com/admin",网站网址为"www.example.com".

我想创建基于URL的会话意味着来自管理部分的请求将具有与来自站点部分的请求不同的会话.

我该怎么做?

Ben*_*une 2

假设您使用的是 Express,您可以将路由的路由器分开,并将会话中间件应用到每个路由器。

路线/index.js

var express = require('express'),
    router = express.Router(),
    session = require('express-session');

router.use(session({
    secret: 'index route secret',
    resave: false,
    saveUninitialized: true
}));

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

路线/admin.js

var express = require('express'),
    router = express.Router(),
    session = require('express-session');

router.use(session({
    secret: 'admin route secret',
    resave: false,
    saveUninitialized: true
}));

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

应用程序.js

var express = require('express'),
    app = express();

app.use('/', require('./routes/index'));
app.use('/admin', require('./routes/admin'));

app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

文档