kev*_*vin 1 cookies safari node.js next.js
我有一个 nextjs 后端作为代理。它基本上将我的请求转发到另一个后端,并在收到响应后设置一个仅 http 的安全 cookie。这是代码:
const handler = (req: NextApiRequest, res: NextApiResponse) => {
axios
.post(`${process.env.NEXT_PUBLIC_API_BASE}/auth/login`, req.body)
.then(response => {
const expires = new Date(
new Date().getTime() + response.data.expires_in
);
res.setHeader(
"Set-Cookie",
serialize("jwt", `${response.data.access_token}`, {
expires,
secure: true,
httpOnly: true,
sameSite: "none",
path: "/",
})
);
res.send("succes");
})
.catch(err =>
res.status(err.response.status).send({ message: err.message })
);
};
Run Code Online (Sandbox Code Playgroud)
它在 Chrome 和 Firefox 中工作,但在 safari 中它没有设置任何 cookie。我尝试了这个samesite:none选项
我通过设置修复了它
secure: false,
Run Code Online (Sandbox Code Playgroud)
如果连接不是通过 https,则设置为 true 不允许您设置 cookie。由于我在本地主机上进行测试,这对我来说是一个问题。我将在生产时将其设置回 true。
| 归档时间: |
|
| 查看次数: |
3618 次 |
| 最近记录: |