代码之家  ›  专栏  ›  技术社区  ›  Gammer

反应:重定向到子域

  •  1
  • Gammer  · 技术社区  · 6 年前

    company.test.com test.com

    验证页打开于 test.com网站 当我得到成功认证的响应时,我从数据库中得到用户的子域名。So公司名称 xyz 应该重定向到 xzy.test.com , 那部分已经完成了 .

    问题是用户的会话。我正在将经过身份验证的用户数据保存到redux中,当页面刷新/重定向到子域时,它将丢失用户数据。

    我能想到的是我应该通过认证的用户 id xyz.test.com/encrypted-user-id 到一个路由,我将在后端获取该用户id,并将对其解密,并将强制用户登录,而不再要求密码。

    我的问题是。。。有别的办法吗?如果没有,这是解决这个问题的可行方法吗

    0 回复  |  直到 6 年前
        1
  •  6
  •   Oerd    6 年前

    是的,有一个备用的,还有更多 对的 解决你问题的方法。

    使Cookie在根域和子域之间可用 :

    接收cookie头时,可以指示浏览器跨子域共享cookie。这是通过将域添加到 Set-Cookie 头球。

    Set-Cookie: user=JohnDoe; domain=testdomain.com
    

    截至 RFC-6265 ,以上语法将告诉浏览器cookies设置为 test.com 应提供给所有子域(即。 a.test.com , xyz.test.com this answer 就这样。

    将cookies设置为在Laravel的子域上可用

    根据 Laravel responses documentation cookie 函数接受php接受的所有参数 [setcookie][4] 功能(看 path domain 参数)。

    例如,对于 你可以写:

    $path = '/'; // make cookie available on all paths
    $domain = "test.com";  // according to rfc6265 make available on root and subdomains
    return $response($content)->cookie($name, $value, $minutes, $path, $domain);
    

    另一种方式,因为 共享所有Cookie 在根域和子域之间 JacobBennet's snippet 变量输入 config/session.php 全部(!) Cookie将可用于子域。

    前端(React)除了“重定向”之外,不应该做任何特殊的事情。

    推荐文章