一 起因
最近做子系统的跨站登录,方案有几种
1 OAuth 2.0,可跨不同域名
2 子域名共享cookie,只能子域名下的网站使用
目前所有系统都是同一个域名下的,使用子域名共享cookie这个方案
二 子域名共享cookie实现技术点
1 实现根域名的获取, psl 获取根域名库
2 实现cookie的快捷访问,js-cookie
三 引用
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
https://oauth.net/2/
http://www.cssjunction.com/tutorials/subdomain-cookie-javascript/
三 附录
import * as Cookies from "js-cookie";
import psl from 'psl';
var CookieStore = {
getRootDomain() {
var strdomain;
if('127.0.0.1' == window.location.hostname || 'localhost' == window.location.hostname ) {
strdomain = window.location.hostname
}
else {
var psl = require('psl')
var parsedomain =psl.parse( window.location.hostname)
strdomain = parsedomain.domain
}
return strdomain;
},
setItem( key, value) {
Cookies.set(key, value, { domain: this.getRootDomain() })
},
getItem(key) {
return Cookies.get(key, { domain: this.getRootDomain() })
}
}
export default CookieStore;