前端是 nodejs 项目,后端是 symfony 项目,前后端域名分别是:a.example.com 和 b.example.com 。 后端有个创建 token 的网址: https://b.example.com/token.html,设置一个共享的 cookie: token。
public function token()
{
    $tokenTokenManager = $this->container->get('security.csrf.token_manager');
    $token = $csrfTokenManager->refreshToken($this->tokenName);
    $tokenCookie = new Cookie(
        'token',
        $token,
        time() + 3600,
        '/',
        $this->cookieDomain,
        true,
        false
    );
    $response = new Response();
    $response->headers->setCookie($tokenCookie);
    return $response;
}
如果单独执行 https://b.example.com/token.html,前端可以获取到 cookie。但是如果通过前端请求这个网址,cookie 就为空,这个是怎么回事呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.