gpt4 book ai didi

node.js - 在 Express js/中从域重定向到子域时如何保持 session 事件

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:49 25 4
gpt4 key购买 nike

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

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
}
}));

最佳答案

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

  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。

关于node.js - 在 Express js/中从域重定向到子域时如何保持 session 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41119380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com