【发布时间】:2021-01-04 20:57:06
【问题描述】:
我有一个节点 js 服务应用程序和一个反应前端。我正在使用 Discord oauth 和 express 会话对我的应用程序前端进行身份验证。
在本地运行时一切正常,但我发现在将我的应用程序部署到 heroku 时,我的服务将 cookie 设置为服务的主域,这意味着我的前端无法使用它。
(例如,cookie 域被设置为“fakeservice.herokuapp.com”而不是“fakefrontend.herokuapp.com”)
显然这在本地工作,因为两个应用程序都在本地主机上运行,这意味着 cookie 主机无论如何都是相同的。
以下是设置 cookie 的一段代码,但是如果我尝试编辑 cookie 的域或路径,它不会保存到浏览器。
我唯一可以更改并仍然保存的是 MaxAge。
我读过的所有解决方案似乎都在 cookie 对象中设置了这个域元素,但这再次阻止了我的 cookie 被保存到浏览器。
任何人都可以提供的任何帮助或指导将不胜感激。
app.use(session({
secret: SECRET_GOES_HERE,
store: new Store({
url: MONGODB_URI,
mongoOptions: {useNewUrlParser: true, useUnifiedTopology: true}
}),
cookie: {
maxAge: 7200000,
domain: '.herokuapp.com' << adding this breaks cookie save
},
resave: false,
saveUninitialized: false,
}))
app.use( cors({
credentials: true,
origin:['.herokuapp.com']
}));
【问题讨论】:
标签: javascript node.js express express-session