Fork me on GitHub

版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | https://vearne.cc

1. 前言

在阅读open-falcon源码时,意外发现它有个UIC(用户中心), 这个项目的代码实现比较简单,唯一问题是界面有点丑

传送门:
UIC github地址

公司正好有个前后端分离的项目需要做登录,因此我打算基于UIC来做单点登录

2. 实现

关于单点登录的基本概念请阅读参考资料1自行脑补

2.1 login过程

注①② 也可采用cookie的方案,本方案是将sig存储在浏览器的localstorage中,每次请求后端API时,附带在Header头中
注③ 一般可以采用302跳转的方案,但是UIC项目本身是通过JS实现的Redirect到callback URL

2.2 logout过程

logout过程需要对UIC进行改造
调用UIC的logout函数,需要执行以下动作
1. remove UIC session
2. 告知其它已经登录的系统的执行logout(需要每个参与系统需要提供接口, 清除session)

参考资料

  1. 单点登录原理与简单实现

PS: 仔细想想微信公众号的Oauth也是单点登录的过程


请我喝瓶饮料

微信支付码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注