【发布时间】:2022-01-11 16:53:33
【问题描述】:
我有一个使用未设置 cookie 的 Vercel 部署的 NextJs 应用程序。我进入控制台 > 网络,可以看到请求的状态为 200,并且 set-cookie 值存在且没有警告。我检查了控制台 > 应用程序 > Cookies 并没有找到 cookie。我在 StackOverflow 和 Github 上发现了一些类似的问题,但答案非常有限,似乎并没有促使我找到解决方案。
我的域名结构是这样的:
domain.com
api.domain.com
subdomain.domain.com
nextapp.domain.com -> deployed through vercel
域和子域应用程序是通过 AWS 部署的标准 React 应用程序,API 是 nodejs (express) 应用程序。我对域和子域应用程序设置的 cookie 没有任何问题,所以我相信这是由 Vercel 引起的问题。我的 API 响应如下所示:
res.status(200).cookie('token', token, { httpOnly: true }).json(...)
设置了这些 cors 选项
app.use(cors({
origin: true,
credentials: true
})
我尝试在以下响应中更新 cookie 选项,但都没有效果。
{ httpOnly: true, sameSite: false, secure: true }
{ httpOnly: true, sameSite: 'none', secure: true }
Vercel 中是否有一些我应该注意的遗漏?
编辑
看起来这实际上可能是 Next.JS 的问题。我没有在 Next.js 中使用 API 层。我的请求如下所示:
try {
let response = await axios.post('https://api.domain.com/login', params, { withCredentials: true } )
} catch(error) {
...
}
【问题讨论】:
标签: node.js reactjs express next.js vercel