今天写一篇关于多域名下单点登录的实现。
有这么个场景,公司下有多个不同域名的站点,我们期望用户在任意一个站点下登录后,在打开另外几个站点时,也是已经登录的状态,这么一过程就是单点登录。
因为多个站点都是用的同一套用户体系,所以单点登录可以免去用户重复登录,让用户在站点切换的时候更加流畅,甚至是无感知。
单点登录所要实现的就是,某一站点登录后,将其登录态会同步到其他另外几个站点。
我们分两部分,先说单个站点的登录流程,再说同步登录态的流程。
登录相关架构
- 服务端采用
nodejs
,缓存采用redis
。 - 用户登录凭证采用基于
session
的cookies
维系,采用cookie
作为登录凭证是目前比较主流的方式。 session
信息用redis
承载,从数据层面上看,redis
中存储session
对象的key
便是cookie
中的value
key
是由UUID
生成的唯一标识- 为了保证