基于UIC构建单点登录
版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | 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)
参考资料
PS: 仔细想想微信公众号的Oauth也是单点登录的过程