精华内容
下载资源
问答
  • SSO单点登录【基于cookie二级域名下跨域共享】的简单实现。
  • cookie二级域名和三级域名跨域实践

    千次阅读 2020-10-09 17:36:55
    自己有一个二级域名 www.zlxdsl.cn,然后又绑定了一个三级域名 nice.www.zlxdsl.cn。在服务器端进行了配置,使得二级和三级域名能够分别导向不同的页面。 具体的服务器配置是 centos7 apache 在httpd.conf中配置 ...

    自己有一个二级域名 www.zlxdsl.cn,然后又绑定了一个三级域名 nice.www.zlxdsl.cn。在服务器端进行了配置,使得二级和三级域名能够分别导向不同的页面。

    具体的服务器配置是 centos7 apache

    在httpd.conf中配置 virtualhost

    <VirtualHost *:80>
      ServerName nice.www.zlxdsl.cn
      DocumentRoot "/var/www/nice"
      <Directory "/var/www/nice">
        AllowOverride all
        Order allow,deny
        Allow from all
      </Directory>
    </VirtualHost>
    <VirtualHost *:80>
      ServerName www.zlxdsl.cn
      DocumentRoot "/var/www/html"
      <Directory "/var/www/html">
        AllowOverride all
        Order allow,deny
        Allow from all
      </Directory>
    </VirtualHost>
    

    打开网页时,设置二级域名的 cookie 的 domain 为一级域名 zlxdsl.cn
    在这里插入图片描述

    然后设置一级域名的 cookie 和 domain 为一级域名 zlxdsl.cn
    在这里插入图片描述
    然后三级域名就可以访问二级域名的 cookie 了

    展开全文
  • 背景 最近在做sso单点登录,sso登录成功后后端需要把token和用户信息以cookie的方式传送给前端,由于...解决思路一 —— 通过二级域名共享cookie 一开始在网上看了很多的跨域共享cookie的方法,使用最多的是jsonp和c...

    背景

    最近在做sso单点登录,sso登录成功后后端需要把token和用户信息以cookie的方式传送给前端,由于项目是前后端分离的,这就涉及到了前后端跨域共享cookie的问题,下面就说说我在项目中的解决思路。


    解决思路一 —— 通过二级域名共享cookie

    一开始在网上看了很多的跨域共享cookie的方法,使用最多的是jsonp和cors这两种,今天我介绍的是另外一种---基于二级域名共享cookie,原因是简单...(注意使用二级域名共享cookie有一个限制条件,就是两个域名的二级域名必须相同)

    二级域名
    先来介绍一下什么是二级域名,拿www.baidu.com做例子,com是这个域名的一级域名,baidu.com是这个域名的二级域名,www.baidu.com是这个域名的三级域名,以此类推...
    二级域名共享就是两个域名的的二级域名必须相同,只有符合这个条件它们之间的cookie才能共享。(例如:a.XXX.test.io和b.test.io,这两个域名的二级域名就是相同的)

    代码实现(基于JDK1.8)

        //添加cookie cookieName
        Cookie cookieName = new Cookie("user_name", userName);
        cookieName.setDomain("test.io");        //通过二级域名共享cookie
        cookieName.setPath("/");
        cookieName.setMaxAge(Integer.MAX_VALUE);
        cookieName.setSecure(false);
        response.addCookie(cookieName);
    
        //添加cookie token
        Cookie token = new Cookie("token", token);
        token.setDomain("test.io");       //通过二级域名共享cookie
        token.setPath("/");
        token.setMaxAge(Integer.MAX_VALUE);
        token.setSecure(false);
        response.addCookie(token);
        
        //关闭浏览器时删除cookie
        Cookie token = new Cookie("token", null);
        token.setDomain("test.io");
        token.setPath("/");
        token.setSecure(false);
        token.setMaxAge(0);  //0代表关闭浏览器删除cookie,负数则关闭浏览器cookie失效(没有删除)
        response.addCookie(token);

    参数介绍
    domain:需要设置的二级域名(至少是二级域名,可以是三级域名、四级域名...)
    path:设置可以访问cookie的路径。假如cookie1的path为/test/,cookie2的path为/test/t/,那么test路径下的所有页面都可以访问到cookie1,而cookie2只有/test/t/下的页面才能访问。
    maxAge:过期时间(时间单位为秒),设置为负数关闭浏览器该cookie失效,设置为0表示删除该cookie,整数则设置时间过后cookie失效
    secure:是否加密方式传输,默认false,为true的话只能使用https协议(因为https协议是加密协议,而HTTP不是)。


    解决思路二 —— 通过设置response的header

    直接上代码

    @RequestMapping(value = "/test.do")
    public void testHandler(HttpServletRequest request, HttpServletResponse response){
        response.setHeader("Access-Control-Allow-Headers", "X-Requested-With, accept, content-type, xxxx");
        response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
        response.setHeader("Access-Control-Allow-Credentials", "true"); 
        response.setHeader("Access-Control-Allow-Origin", "http://localhost:8080");
        Cookie cookieName = new Cookie("user_name", "test");
        cookieName.setPath("/");
        cookieName.setMaxAge(Integer.MAX_VALUE);
        response.addCookie(cookieName);
       
    }
    

    解释:
    "Access-Control-Allow-Headers":可选字段,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。如果想拿到其他字段,就必须在Access-Control-Expose-Headers里面指定。
    "Access-Control-Allow-Methods":可选字段,允许请求该接口的方法类型。
    "Access-Control-Allow-Credentials":可选字段。它的值是一个布尔值,表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可,Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true,如果服务器不要浏览器发送Cookie,删除该字段即可。
    "Access-Control-Allow-Origin":必填字段。它的值要么是请求时Origin字段的值(如示例中http://localhost:8080),要么是一个*,表示接受任意域名的请求。


    解决思路三 —— 设置@CrossOrigin

    先看代码实现

    @CrossOrigin(origins = "http://localhost:8080", maxAge = 3600, methods = {RequestMethod.OPTIONS, RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE})
    @RequestMapping(value = "/test.do")
    public void testHandler(HttpServletRequest request, HttpServletResponse response){
        
        Cookie cookieName = new Cookie("user_name", "test");
        cookieName.setPath("/");
        cookieName.setMaxAge(Integer.MAX_VALUE);
        response.addCookie(cookieName);
       
    }
    

    @CrossOrigin注解是被注解的方法具备接受跨域请求的功能。默认情况下,它使方法具备接受所有域,所有请求消息头的请求。。。。这个例子中,我们仅接受

    http://localhost:8080发送来的跨域请求。

    展开全文
  • cookie 二级域名共享

    2015-08-11 15:05:52
    设置Response.Cookies("MyCookie").Domain = "cnblogs.com"; (这里指的是泛域名) 简单记录下

    设置Response.Cookies("MyCookie").Domain = "cnblogs.com"; (这里指的是泛域名)


    简单记录下

    展开全文
  • Cookie 二级域名设置

    2009-05-31 11:18:00
    在写域名的时候要把域名设置为cookie.Domain = ".cnblogs.com"; 如果是forms验证则 &lt;authentication mode="Forms"&gt; &lt;forms name=".DottextCookie" loginUrl=&...

    在写域名的时候要把域名设置为cookie.Domain = ".cnblogs.com";

    如果是forms验证则

    None.gif<authentication mode="Forms">
    None.gif   <forms name=".DottextCookie" loginUrl="login.aspx" protection="All" timeout="480" path="/" />
    None.gif</authentication>

    展开全文
  • 文章目录访问顶级域名访问二级域名访问三级域名总结 首先说明一点:cookie在不同域名之间是无法共享的,即跨域问题!但是在顶级域名、二级域名、三级域名中是可以共享的! 准备如下三个域名: 顶级域名:...
  • 一级域名、二级域名 cookie

    千次阅读 2018-02-08 14:07:20
    一级域名、二级域名一级域名是 animail.com 二级域名是 www.animal.com, elephant.animal.com 三级域名是small.elephant.animal.com 以此类推…cookie在父子域名下的行为在子域名下,可以提交父域名的cookie
  • 如我们要在www.jb51.net下使用一个cookie的话 ,只要在这个站下面的文件中设置一个cookie就行了 但是如果我们要想实现在一级域名下设置的cookie,同时要在二级域名下使用的话那么该怎么做呢?比如这样的情况:我们在...
  • 今天博客园全面采用二级域名后,发现即使用户已经登录,但在访问二级域名Blog页面时都显示没有登录(表现为发表评论时要求输入验证码, 收藏功能无法正常使用),再次登录后,进入其他二级域名还是需要登录。
  • 有时候两个域名可能在不同的服务器上,但是我们依然希望二级域名能够顺利访问主域名的cookie,主域名可以顺利访问二级域名cookie,比如sc.jb51.net 希望能访问 www.jb51.net 和 blog.jb51.net 的 cookie 下面介绍3种...
  • 参考:Cookie顶级域名、二级域名、三级域名共享 总结概括 在setcookie中省略domain参数,那么domain默认为当前域名 domain参数可以设置父域名以及自身,但不能设置其它域名,包括子域名,否则cookie不起作用 如果...
  • 3. 通过二级域名的登录请求到后台可以从request里面获取到domain值,但是cookie中不能拿到domain值,无法判断是一级域名下的cookie还是二级域名下的cookie。 4. 这个时候需要精确的取出二级域名下的cookie该怎么...
  • 遇到的问题,在开发中做cookie存储的时候没有设置path,导致在用户登录后cookie存储在/user路径下(这时是一个用户列表页面),在操作栏点击添加... 1、cookie二级域名的实现:用户其中一个站点登录,而且可以各个子...
  • cookie跨域,二级域名之间如何共享

    千次阅读 2018-04-09 11:08:38
    同域名的二级域名实现共享,比如:www.domain.com下登录后,在其它的二级域名,my.domain.com、bj.domain.com、sh.domain.com等二级域名都能共享登录cookie TP5解决方案 // +------------------------------...
  • 在项目中,我们可能会遇到再定于域名登陆后,他所有下级全部自动登录 或者几个二级域名登录,这就需要我们获取顶级域名的cookie进行判断。 顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名等等,...
  • 主要介绍了PHP+Apache实现二级域名之间共享cookie的方法,涉及Apache的配置、hosts修改及php cookie操作相关实现技巧,需要的朋友可以参考下
  • 二级域名之间共享cookie

    千次阅读 2017-04-12 19:57:57
    也就是说二级域名(或者三级域名)之间可以通过这种方式共享cookie。 其实cookie的domain属性的用法跟path有些类似,比如我们将cookie的path设置为/,则/user目录下也可以访问该cookie。实践Apache同一端口对应不同...
  • cookie共享于二级域名

    2016-07-30 17:10:14
    纠结了半天,终于搞定了cookie在主域名下各个二级域名可共享问题.   对于任何web 前端技术,都可以对创建cookie并且可以修改同域下cookie的数据. 一个cookie是一个K-V的字符串,同时可以传递一些属性.   ...
  • 通常SSO都是企业内部多个应用之间,一个企业一般有一个顶级域名,应用系统使用二级域名来区分,只要实现了cookie二级域名之间共享,那就实现了一次登录,到处免登。 比如顶级域名为 .star.com,现有app1.star.com...
  • 二级域名之间的cookie共享

    千次阅读 2019-06-25 09:10:10
    1,共享之间的二级域名必须是解析于同一个顶级域名之下; 2,比如现在有两个二级域名,a.xxx.com(域名A)和b.xxx.com(域名B)。两个都解析于域名xxx.com顶级域名之下。 3,现在域名A的登录cookie域名B下面需要使用。 4...
  • 自己也只知道domain设置为顶级域名时可以被其他二级域名共享,但是如何删除还是有一点搞不清楚,所以特意测试了下cookie和domain之间的关系,下面是一些测试结果的总结设置cookie 非顶级域名,如二级域名或者三级...
  • 设置共享Cookie: ... 二级域名要想共享一级域名的cookie,只需要设置cookie.Domain=".一级域名.com"; 删除共享Cookie: HttpCookiecookie=HttpContext.Current.Request.Cookies["A"];if(cookie!=null){...
  • 顶级域名与二级域名共享Cookie测试

    千次阅读 2016-12-30 17:39:29
    1.修改hosts 在hosts文件中添加如下配置:# Test Cookie ...127.0.0.1 xx1.hostName.com其中hostName.com为顶级域名,另外两个是二级域名2.建立web项目并添加Cookie测试类 2.1BaseController.java:package or
  • 前言: 公司的一个 web 端项目,项目放在一级域名的某一个目录下方 ...领导说这个太麻烦,于是弄了个二级域名,直接指向项目目录的 index.html 接口地址:一级域名+接口 登录之后接口会设置 cookie ...使用二级域名访问项
  • cookie二级域名和顶级域名

    千次阅读 2014-04-16 13:31:23
    1. 同一 Response.AddHeader("P3P", "CP=CAO PSA OUR"); HttpCookie cookie = new HttpCookie("username"); cookie.Domain = ".plusbe.com";//域名 cookie.Expires = D

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,686
精华内容 13,074
关键字:

cookie二级域名