单点登录的三种实现方式,你会几种?
JAVA葵花宝典
共 4092字,需浏览 9分钟
·
2020-10-12 13:34
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
作者 | 张永恒
来源 | urlify.cn/RVvaim
前言
实现方式一:父域 Cookie
实现方式二:认证中心
Apereo CAS 是一个企业级单点登录系统,其中 CAS 的意思是”Central Authentication Service“。它最初是耶鲁大学实验室的项目,后来转让给了 JASIG 组织,项目更名为 JASIG CAS,后来该组织并入了Apereo 基金会,项目也随之更名为 Apereo CAS。
XXL-SSO 是一个简易的单点登录系统,由大众点评工程师许雪里个人开发,代码比较简单,没有做安全控制,因而不推荐直接应用在项目中,这里列出来仅供参考。
实现方式三:LocalStorage 跨域
// 获取 token
var token = result.data.token;
// 动态创建一个不可见的iframe,在iframe中加载一个跨域HTML
var iframe = document.createElement("iframe");
iframe.src = "http://app1.com/localstorage.html";
document.body.append(iframe);
// 使用postMessage()方法将token传递给iframe
setTimeout(function () {
iframe.contentWindow.postMessage(token, "http://app1.com");
}, 4000);
setTimeout(function () {
iframe.remove();
}, 6000);
// 在这个iframe所加载的HTML中绑定一个事件监听器,当事件被触发时,把接收到的token数据写入localStorage
window.addEventListener('message', function (event) {
localStorage.setItem('token', event.data)
}, false);
补充:域名分级
推荐阅读 海量交易订单查询没做“重试”,一哥们“喜提”P3故障! 聪明的项目经理,都会利用周报让老板重视你! MySQL百万数据,你如何用分页来查询数据 你的Redis为什么变慢了?
评论