所以我有A、B、C。 A - 客户端,B - 认证服务器,C - 主服务器。所有设备都安装了 SSL 证书,因此所有 A、B 和 C 中均使用 https 作为协议。
编辑:所有 A、B、C 都有不同的主机名。
过程是这样的,我从A向B发出注册请求,并从B收到cookie(access_token)。之后,我向C请求一些信息,但我在C上有一个中间件来检查access_token是否为有效,但它永远找不到 access_token,因为 cookie 没有发送。因此 A 不会将从 B 收到的 cookie 发送给 C。
奇怪的是,我可以再次将cookie从A发送到B,因为B检查cookie以查看用户是否仍然登录。
我尝试使用 axios 和 withCredential: true 执行此操作,但仍然不起作用。
请求如下:
await axios
.post(
`${url}`,
{body},
{ withCredentials: true }
)
以下是 B 发送 cookie 的方式:
res.cookie("access_token", token, {
httpOnly: true,
secure: true,
maxAge: 86400000,
sameSite: "none"
});
我几乎尝试了在论坛/帖子等上看到的所有内容...我花了近 10 个小时来研究这个问题。 有人知道我做错了什么吗?
事实证明,按照我尝试的方式是不可能的,我最终让 B 和 C 具有相同的域来解决它。
我也遇到过同样的问题。 你能解决吗?