目前有两个各自独立的项目网盘和论坛,现在要实现实现单点登录,但是两个系统的用户结构不同,可以做单点登录吗
2条回答
- 不会产品的产品经理 2017-08-30 06:59关注
楼主说是可以实现的,不过登录之后由于用户库不一样会有无权限的问题,具体 分析一下
要实现单点
1,通过分布式缓存做到session共享(如redis),即:两个系统共享登录的session信息。
2,前台请求将sessionId写入请求的header里边。sessionid存储的cookie中
3,这样当登录了一个系统之后,后台保存了登录信息到redis里边,而且登录校验的时候后台先通过请求的sessionid上redis里边查询
是否已经有登录信息了。如果有则获取登录信息,如果没有再校验用户名密码登录。
4,此时登录另外一个系统,从cookie中获取sessionid传到后台校验。
5,问题:两个系统必须是同源的,因为cookie不能非同源访问。即:必须是一个顶级域名下得二级域名如果两个系统是完全独立的,这个时候就要借助另外一个用户中心的系统来实现,实现原理跟上面描述的一样。
其实即使这样实现了,还是无法做到权限共享,因为一个系统在A登录,但是在B中无此用户,登录之后A再B系统里边没有任何权限。
所以另外一种实现方式比较简单粗暴。那就是定时同步两个系统的用户。
1,定时同步两个系统的用户
2,在两个系统分别加上登录另外一个系统的一个单点连接,连接中带着用户名和密码(当然要加密)
3,点击后则跳转到另外一个系统,因为带着用户名和密码,所以后台接收到之后直接过个校验。
以上是完全独立的两个系统实现单点的一种方案。很多erp就是这么实现的解决 4无用
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!