Ctony_ 2017-08-30 03:28 采纳率: 0%
浏览 3827

两个完全独立的系统可以做单点登录吗

目前有两个各自独立的项目网盘和论坛,现在要实现实现单点登录,但是两个系统的用户结构不同,可以做单点登录吗

  • 写回答

2条回答

  • 关注

    楼主说是可以实现的,不过登录之后由于用户库不一样会有无权限的问题,具体 分析一下

    要实现单点
    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就是这么实现的

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!