1

私はexpressJSを使用していますが、セッションについて少し混乱しています。異なる URL から到達可能な 1 つの ExpressJS サーバーがあります。接続がどこから来るか (どの URL が開かれるか) に応じて、応答を提供するために異なるデータベースが使用されます。そして、セッションが競合していることがわかります。

リクエストの URL に基づいて、異なる Cookie 名を設定する必要があると思いますが、セッション構成内で関数を指定できないようです。

何か案は?

var app = express();
var session = require('express-session');

var router = express.Router();

app.use('/a_route', router);
app.use('/b_route', router);

router.use(session({
    genid: function(req) {
    return require('crypto').randomBytes(48).toString('hex'); // use UUIDs for session IDs
    },
    secret: 'JollynakAjollynakAjollynakApamPam',
    resave: false,
    saveUninitialized: false,
    name: **THIS SHOULD BE DYNAMIC BASED ON URL???**
}));

編集

//declare session variable
var sess ="";


router.post('/login', function (req, res, next) {

    sess = req.session;

    var uname = req.body.username;
    var pwd = req.body.password;
    var authResult = null;

    sess.username = uname;
    sess.instance = req.baseUrl.replace('/', '');
})

そしてAJAX呼び出しの例

router.get('/getSomething', function (req, res) {

    service.getCaps(sess.instance, function (response) {
        res.send(JSON.stringify(response));
    });
});
4

1 に答える 1