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

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

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

  • 写回答

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

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料