不同域名(多域名)下共享登录状态
在我的一个个人项目中(花瓣平台),我希望接下来和他人协作搭建一个大一些的平台,其模式类似于QQ之于QQ音乐这样,我们各自负责自己的项目的开发与维护,但是需要共享用户信息,其中最重要的是共享登录状态,即:实现在一处登录后登录同一id如何不共享,访问另一个站点就可以不用在登录了。
经过查询资料得知,传统的做法是可以在cookie里面的domain属性设置需要跨域的域名,这样就可以在多个站点实现共享cookie,也就是可以通过这种方式共享登录状态。这种方式比较简单快捷,但是有一个缺陷就是,共享cookie的站点需要是同一个顶级域名,例如/。
那么如何在不同顶级域名下实现共享登录状态了?思考了很久之后,突然灵光一现。由于我的项目中采用的是JWT认证用户的,那么,在我的域名下登录后,跳转到另一个需要共享登录状态的域名时登录同一id如何不共享,可以将token一起携带过去,这样,目标站点获取到携带的token后存储下来,这样就算是实现共享登录状态了。但是这样也有一个缺陷,那就是假如在xx1站点下登录了,有token,如果不通过xx1站点的链接跳转到xx2站点,而是直接访问xx2站点,这样就无法把token携带过去了。
后来,经过继续查询资料,了解到其实现在已经有了一种解决方案,叫 “单点登录”(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。文档地址
手机浏览,点击图片保存二维码到相册,然后打开微信扫一扫选择本二维码图片就可以进入,电脑端微信“扫一扫”二维码,进入找聊天搭子平台,里面有找饭搭子、找对象、找陪伴服务等等