我无法将 access_token ( cookie ) 发送到我的 API

问题描述 投票:0回答:2

所以我有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 个小时来研究这个问题。 有人知道我做错了什么吗?

cookies server axios client
2个回答
0
投票

事实证明,按照我尝试的方式是不可能的,我最终让 B 和 C 具有相同的域来解决它。


0
投票

我也遇到过同样的问题。 你能解决吗?

© www.soinside.com 2019 - 2024. All rights reserved.