子系统的跨站登录总结

一 起因
最近做子系统的跨站登录,方案有几种
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;

你可能感兴趣的:(子系统的跨站登录总结)