zoukankan      html  css  js  c++  java
  • 不同三级域名与二级域名之间互相共享Cookie

    当你在项目中遇到这样一个问题,有多个站点在多个二级级域名如果要实现各域名站点下的登录状态共享,那么最简单的方法就是共享Cookie。

    首先声明几个概念,域名怎么去区分

    顶级域名:.com,.cn,.net,.org,.com.cn(一定程度上大家都默认这种情况也属于一级域名,严格意义是属于中国域名下的企业站点)

    二级域名:.abc.com,.bcd.cn,.cde.net都属于二级域名

    三级域名:zx.abc.com属于三级域名

    如果了解了上边的域名规则加下来去设置Cookie就简单了

    1.而基于名的Cookie设置是可以和三级域名共享

    2.三级域名Cookie只能用于自己级子域名

    一句话概括,域名设置domain属性可以在domain的子级共享cookie不能再其父级获取cookie。

    给予上边的规则,在设置cookie时只需要指定domain属性即可实现共享。

    例如:我们再a.loyung.com下设置一个cookie需要在b.loyung.com下访问这时为Cookie的domain属性指定值“.loyung.com”或者“loyung.com”即可。

    严格意义上是设置.loyung.com如果不加前面的“.”则浏览器会为你自动添加前缀.因为这样是一个完整的二级域名

    注意:这里设置domain属性为“www.loyung.com”不可以,设置*.loyung.com也是不可以。

    如果是在本地调试可以按一下操作来模拟服务器环境。

    1.设置host文件,路径C:WindowsSystem32driversetc,修改文件为 127.0.0.1 crm.loyung.com.cn bi.loyung.com.cn

    2.安装本地IIS或其他Web服务端程序,建立两个本地站点分别绑定crm.loyung.com.cn和bi.loyung.com.cn两个域名

    可以尝试访问站点1登录直接跳转站点2在站点2中就可以读出站点1记录的登录状态。

    调试排错:

    知道了上边这些,在设置完domain后可能还是得不到想要的效果,这里一定注意了。

    每次设置完建议清理一下cookie,如果时在IIS等服务端挂的项目重启一下服务端。

    可以通过浏览器查看Cookie的值及Domain属性来确定加载的是不是当前的设置,如果不是就按上述操作清除Cookie和重启IIS

    按照上面操作已基本不会有啥问题了。

  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/loyung/p/7263530.html
Copyright © 2011-2022 走看看