会话端口是否具体?

时间:2017-06-17 00:18:02

标签: node.js session

我在localhost上写了两个应用程序,不希望它们共享某些信息(可能在会话中)。

我想知道我是否可以打开两个端口?会话存储端口是否具体?

1 个答案:

答案 0 :(得分:2)

  

我想知道我是否可以打开两个端口?

是的,你通过启动两个服务器来监听两个端口,每个端口一个。

  

会话存储端口是否具体?

是和否。这取决于会话的配置方式。

Cookie不是特定于端口的,因此会话cookie本身会在同一主机上的两台服务器之间共享,但会有不同的端口。

因此,如果您想在同一主机上的两个单独的Web服务器上使用两个快速会话实例,但是要使用单独的会话使用单独的端口,则可以初始化快速会话以为每个会话使用单独的cookie(通过指定每个不同的cookie名称)并初始化两个单独的快递会话实例,然后两个会话将完全分开。

以下是一个例子:

const express = require('express');
const session = require('express-session');

// configure first server and session middleware
const app1 = express();
app1.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true },
  name: 'session1'
}));
app1.listen(8080);

// configure second server and separate session middleware/session cookie
const app2 = express();
app2.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true },
  name: 'session2'
}));
app2.listen(8081);

而且,如果您为会话指定了特定的存储介质,则需要确保将这些介质初始化为单独的存储位置。