Javascript 如何使用Heroku子域设置相同的域cookie?
我的前端在一个Heroku实例上运行:Javascript 如何使用Heroku子域设置相同的域cookie?,javascript,heroku,cookies,cross-domain,subdomain,Javascript,Heroku,Cookies,Cross Domain,Subdomain,我的前端在一个Heroku实例上运行:fe.herokuapp.com 我的后端运行在另一个实例上:be.herokuapp.com 当用户从前端登录时,我想设置一个相同的域cookie 我使用膝关节炎Cookie模块来设置cookie,比如: cookies.set("accessToken", token, { maxAge: 1000 * 60 * 24, signed: true, secure: process.env.NODE_ENV === "production",
fe.herokuapp.com
我的后端运行在另一个实例上:be.herokuapp.com
当用户从前端登录时,我想设置一个相同的域cookie
我使用膝关节炎Cookie模块来设置cookie,比如:
cookies.set("accessToken", token, {
maxAge: 1000 * 60 * 24,
signed: true,
secure: process.env.NODE_ENV === "production",
httpOnly: true,
domain: process.env.ORIGIN_HOSTNAME || "localhost"
})
如果有帮助,我将使用React前端和节点后端(使用Koa)
通过Postman,我的后端返回以下集合cookie头:
accessToken=<access_token>; path=/; expires=Sun, 01 Sep 2019 16:27:24 GMT; domain=.herokuapp.com; secure; httponly
accessToken=;路径=/;expires=太阳,2019年9月1日16:27:24 GMT;域名=.herokuapp.com;保护httponly
但是,通过我的React应用程序,我看不到任何设置的cookie头
我的前端正在使用带有凭证=“include”
的同构unfetch库。(可能这需要相同的来源
,因为它位于同一子域上?)
我的两个问题是:
fe.herokuapp.com
如果需要,很高兴发布更多代码片段。这个问题已经困扰了一段时间。我发现:
cookies.set(“accessToken”,令牌{
最大值:1000*60*24,
签名:对,
安全:process.env.NODE_env==“生产”,
httpOnly:true,
域:process.env.ORIGIN|u主机名| |“localhost”,
sameSite:“none”/herokapp.app
列在Public suffix
列表中,这意味着Cookie被阻止进入域“herokapp.com”
您必须使用自定义域技术您曾经解决过这个问题吗?不幸的是,没有遇到同样的问题。当您解决这个问题时,请更新:)干杯!@cfree@PrateekThakur
const app = new Koa()
app.proxy = true
cookies.set("accessToken", token, {
maxAge: 1000 * 60 * 24,
signed: true,
secure: process.env.NODE_ENV === "production",
httpOnly: true,
domain: process.env.ORIGIN_HOSTNAME || "localhost",
sameSite: 'none' // <-- add this
})