前言
目前公司有两个平台,分别是为普通用户使用的h5端和为企业提供服务的PCWeb端,这两个平台是共用一套登录体系和用户体系,久而久之,为了区分不同的业务场景导致用户体系的字段存在着大量的冗余,这时候就要开始进行重构,将原有的用户进行分离,但是依旧使用同一套登录系统。在重构的过程中,因为对Cookie的错误判断导致了一些问题,走了许多弯路,于是决定将这些问题记录下来,引以为戒。
Cookie是由服务端写入到客户端浏览器的一串字符串,主要包括键,值,过期时间,路径和域,这里主要说域的使用。
1.domain域不填
默认是只有当前域下面有效
2.domain域指定
在指定的域和该域下面的所有子域名都有效 这里的有效指的是,浏览器在访问有效的域名下的资源时,会自动在请求头中带上该cookie
3.SSO单点登录的实现
假设登录的域名是login.olange.cn,需要验证登录的站点是a.olange.cn和b.olange.cn,当我访问a.olange.cn的时候,因为此时还未登录,就会跳转到login.olange.cn上的登录页面,在提交完登录名和密码后,校验成功,这时候就要开始写入token到Cookie中,将Cookie的domain设为它们的上级域名olange.cn,这样浏览器在访问a.olange.cn和 b.olange.cn的时候都会带上这个token
4.domain可以自由设置吗
可以,但是浏览器不接受。出于安全考虑,浏览器只会保存当前域及其上级域名下的Cookie,其他的则会被抛弃掉。