【问题标题】:How to keep the session active when redirecting from domain to subdomain in Express js/在 Express js/ 中从域重定向到子域时如何保持会话处于活动状态
【发布时间】:2017-04-28 09:54:06
【问题描述】:

我正在从事一个 Express 项目 (MEAN)。我在 myDomain.com 有我的登录/注册页面,登录时我想将用户重定向到 user.myDomain.com。我使用会话存储模块将会话存储在 MongoDb 中。我可以将用户重定向到子域,但由于会话不在域和子域之间进行维护。它会将用户重定向到登录页面。 我已经查看并尝试了

中的所有内容

Using Express and Node, how to maintain a Session across subdomains/hostheaders https://github.com/jaredhanson/passport/issues/125 Maintaining login session across subdomains in nodejs mongostore

但我仍然迷路,找不到合适的解决方案。 你能帮帮我吗?

编辑: 我这样做了,但 id 没有帮助我。

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cors());
app.use(cookieParser());
app.use(express.static('../app'));

app.use(session({
  secret:appConfig.SECRET,
  resave:false,
  saveUninitialized:true,
  domain: '.myDomain.com',
  store: sessionstore.createSessionStore({
      type: 'mongodb',
      host: 'localhost',         // optional
      port: 27017,               // optional
      dbName: 'MyDataBase',       // optional
      collectionName: 'sessions',// optional
      timeout: 10000             // optional
      // authSource: 'authedicationDatabase',        // optional
      // username: 'technicalDbUser',                // optional
      // password: 'secret'                          // optional
      // url: 'mongodb://user:pass@host:port/db?opts // optional
  }),
  cookie: {
         path: '/',
         domain: '.myDomain.com',
         maxAge: 1000 * 60 * 24 // 24 hours
     }
}));

【问题讨论】:

    标签: node.js session express session-cookies mean-stack


    【解决方案1】:

    我之前也遇到过同样的问题。 也许你可以试试这样:

      app.use(session({
      cookie: {
        maxAge: 1000 * 60 * 60 * 24 * 30,
        domain:'.dreamon.so' // That's what you need.
      },
      store: new RedisStore({
        host: settings.redis.HOST,
        port: settings.redis.PORT
      }),
      secret: settings.session.SECRET,
      resave: true,
      saveUninitialized: true
    }));
    

    但请记住在进行其他测试之前清除浏览器 cookie。

    【讨论】:

    • 谢谢。我使用会话存储模块尝试了相同的操作,但它没有帮助我。请检查编辑以找到我所做的。
    • 所以您确定您检查了存储在浏览器中的cookie,并且在user.myDomain.com 下没有cookie,对吗?您能否粘贴有关重定向到登录页面和 user.myDomain.com 的代码?
    • 我使用 $window.location = "user.myDomain.com 在登录时从节点获取响应时从客户端重定向用户。
    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2013-12-21
    • 2014-02-25
    相关资源
    最近更新 更多