节点应用程序之间共享会话?

2024-05-23

我目前有两个独立的节点应用程序在两个不同的端口上运行,但共享相同的后端数据存储。我需要在两个应用程序之间共享用户会话,以便当用户通过一个应用程序登录时,他们的会话可用,并且他们似乎已登录到另一个应用程序。在本例中,它是一个面向公众的网站和一个管理后端。

我们的设置如下:

  • 节点与快递
  • 护照用于处理本地策略的身份验证
  • 我们使用 connect-redis 来允许我们通过 redis 共享会话。
  • 我们的域名如下所示:www.mydomain.com 和 adm.mydomain.com

两个应用程序的会话内容(和 redis)的配置是相同的:

session: {
    options: {
        secret: "my secret",
        cookie: {
            domain: "mydomain.com",
            maxAge:1000*60*60*24
        }
    },
    redis: {
        host: 'my host',
        maxAge: 86400000,
        secret: "my secret"
    }
}

app.js 中会话内容的配置如下所示:

if ( app.settings.env === "production" ) {
    session.options.store = new RedisStore(session.redis);
}
app.use(express.session(session.options));
app.use(passport.initialize());
app.use(passport.session({ secret: 'a different secret' }));

我期望它做什么:允许我们在两个应用程序之间的 cookie 中看到相同的会话 ID。

所以我的问题是:如何设置express、redis和passport,以便可以在不同子域之间共享会话?


也许有点过时了,但此时 Express-session 可以识别 cookie 的域选项。据消息来源:

function session(options){
  var options = options || {}
  //  name - previously "options.key"
    , name = options.name || options.key || 'connect.sid'
    , store = options.store || new MemoryStore
    , cookie = options.cookie || {}
      ...

这是为了设置 cookie:

var Cookie = module.exports = function Cookie(options) {
  this.path = '/';
  this.maxAge = null;
  this.httpOnly = true;
  if (options) merge(this, options);
  ...

所以,这样的东西适用于当前的 1.10.1 master:

secret: "my secret",
    cookie: {
        domain: "mydomain.com",
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

节点应用程序之间共享会话? 的相关文章

随机推荐

  • 从头开始构建 OLAP 解决方案时应该注意什么?

    我在一家运行基于 MS SQL 数据库服务器的软件产品的公司工作 多年来我已经用 PHP 开发了 20 30 个相当高级的报告 直接从数据库获取数据 这非常成功 人们对此感到高兴 但它有一些缺点 对于新的变化 它可能是相当开发密集型的 用户
  • 将 C 代码转换为 x86-64 汇编

    我正在尝试将 C 代码转换为 x86 64 我的目标是反转链表 传入的两个参数是 head ptr 和 offset to 以获取指针字段的地址 即指向列表中下一个节点的指针 据我了解 head ptr是通过rdi寄存器传入的 offset
  • 使用 jquery ajax 和 asp.net 处理程序上传文件

    我正在努力让它工作 但我在上传文件时遇到错误 ASPX
  • C++ std::vector 搜索值

    我正在尝试优化std vector 搜索 基于索引的迭代向量并返回与 搜索 条件匹配的元素 struct myObj int id char value std vector
  • EXPO:无法解析模块“./debugger”

    重新加载后 我的应用程序已停止加载 A 我已经尝试过模拟器和 2 个真实设备 android 和 ios 错误是 错误 无法解析模块 debugger ui debuggerWorker d9da4ed7来自 有时我会收到错误 无法找到实例
  • [程序名称].exe已停止工作

    我有一个基于 Framework 2 0 构建的 NET 应用程序 我已经为它构建了一个安装程序 并尝试在具有 3 5 的计算机上运行它 所有相关环境均在Windows 7上 该应用程序在我的开发机器上以 VS 调试模式完美运行 该机器也具
  • PHP 下载脚本输出损坏的文件

    我正在用 PHP 为我的 CMS 构建一个文件下载类 当时我注意到它以不同的编码格式输出文件 我尝试使用 readfile file get contents fread 但似乎都在做同样的事情 这就像与输出缓冲有关的东西 我使用脚本下载的
  • 使用 Beautifulsoup 的带有空格的类的正则表达式

    我发现方法 BeautifulSoup find 用空格分割类属性 在这种情况下 我无法使用正则表达式 如下面的代码所示 你能帮我找到所有 树孩子 元素的正确方法吗 import re from bs4 import BeautifulSo
  • 最佳实践:ASP.NET 中的 CSS 或主题?

    什么时候应该使用 ASP NET 主题 什么时候应该使用 CSS 使用其中一种相对于另一种有哪些优点或缺点 我建议使用 CSS 而不是主题 原因是在 CSS 中 您可以修改样式以使其适用于所有浏览器 您可以对主题做同样的事情 但微软的设计师
  • 如何通过在R闪亮循环中读取.csv文件来动态生成dataTableOutput?

    我有一个函数可以生成 n 个数据帧并将其作为 csv 文件保存在某个位置 并且该函数返回已保存 CSV 的文件名 我希望获取这些 csv 文件 使用以下命令读取它read csv 然后使用 renderUI 和 renderDataTabl
  • 如何在 ember.js 路由中显示模型的非 id 字段的字符串值?

    我有一个自定义字段 允许您过滤模型列表 在某些 ArrayController 上 PersonApp SearchField Ember TextField extend keyUp function e var search this
  • 为什么我的多螺纹嵌件比单螺纹嵌件性能更好?

    我调查了并发性 http docs mongodb org manual faq concurrency how granular are locks in mongodb在 MongoDB 中 显然它使用了数据库级锁定系统 我认为这意味着
  • 如何用Classic asp解析xml?

    你好 我需要用 Classic asp 解析 xml 这是 XML
  • django import-export 是否可以自定义预览模板?

    我的管理端将由非系统管理员人员使用 因此我希望它尽可能清晰 我不明白如何在确认导入之前自定义预览 要添加具有外键引用的对象 我只需查找匹配的 idbefore import函数并按照解释替换它here https stackoverflow
  • Magento:如何在 CMS 页面中包含 php 调用

    按照此页面的说明进行操作 http www magento cc how to use php on a cms page html http www magento cc how to use php on a cms page html
  • PHP 的password_verify() 是否可以抵御极长的密码(DoS 攻击)?

    一般攻击场景 2013 年 Django 存在一个普遍漏洞 攻击者可以通过非常大的密码创建极其密集的 CPU 计算 请参阅此处的安全通知 https www djangoproject com weblog 2013 sep 15 secu
  • SetInterval 函数不适用于 PHP 文件

    我有这样的index html
  • 循环引用导致 Automapper 堆栈溢出

    我正在使用 Automapper 将 NHibernate 代理对象 DTO 映射到我的 CSLA 业务对象 我正在使用 Fluent NHibernate 创建映射 这工作正常 我遇到的问题是Order有一个集合OrderLines其中每
  • TabControl 和边框视觉故障

    我在每台电脑上都有这些视觉故障tabControls当我改变它的时候tabPages BackColor和BackColor的形式 如下图所示 在顶部tabPage 有一个内部单像素白色边框 在左侧tabPage 有一个内部三像素白色边框
  • 节点应用程序之间共享会话?

    我目前有两个独立的节点应用程序在两个不同的端口上运行 但共享相同的后端数据存储 我需要在两个应用程序之间共享用户会话 以便当用户通过一个应用程序登录时 他们的会话可用 并且他们似乎已登录到另一个应用程序 在本例中 它是一个面向公众的网站和一