Skip to content

Cookie 实现单点登录 #17

@hexson

Description

@hexson

最近在做项目的时候,由于多个系统的集成和整合,涉及到单点登录的问题。什么是单点登录呢?意思就是在同一个体系下共享账号的各种不同系统,在某个系统登录之后,其余的系统都是在登录的状态并且获得该账号的所有权限。

使用 Cookie 方法

cookie 设置和读取当前网页关联的客户端属性字符串。

cookie 不能跨域访问,但是能在二级域名之间共享,如果各个系统是在同一个主域名下分属不同的二级域名,就可以利用 cookie 的这个特性来设置单点登录,实例:

(function(){
  HoCookie.set("token", "4c0c77c01bf12bc5fe1fb0c7281da2c0", { expires: 7, domain: "hexson.win" });
})();

这段代码里,我们设置了一个在域名 hexson.win 下,有效期7天名为 token 的 cookie,那么我们在任意 xxx.hexson.win 下,都能通过 HoCookie.get("token") 的方法获取到值 4c0c77c01bf12bc5fe1fb0c7281da2c0,所以,这个方法在同一个主域名下都可以在请求中带上 token 值而实现单点登录。

所有的 HoCookie 方法参见 Cookie Getter and Setter 封装:hocookie.js

以后还会贴出不同域名下跨域单点登录的方法。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions