linux-PHP单点登录哪个的解决方案比较好点
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-PHP单点登录哪个的解决方案比较好点,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2921字,纯文字阅读大概需要5分钟。
内容图文
![linux-PHP单点登录哪个的解决方案比较好点](/upload/InfoBanner/zyjiaocheng/192/6b5c2529e3d94a0f84eec23b14ba463b.jpg)
回复内容:
UCente比较现成的,但是和自己的项目契合度不高,使用共享session服务器这边要怎么配置,有没有大神给个好的意见和方向,谢谢!
之前回答过同样的问题,我重新拿出来再回答一遍。
题主请看
首先提醒一下题主不要被新技术吓到了,也不要去查什么SSO(Single Sign On,单点登录),那样只能增大你问题的复杂度和对这个问题的恐惧心理,其实真的没那么难。
我来帮你拆解下问题,你说的Session多端登录,其实可以拆解为Session共享+登录,不是什么高级的东西,无非是需要的Session值在让不同服务器不同域名的情况下都可以访问,让大家都读取同一个Session值,重要的是同一个session_id()值。这样的话,每台(服务器/项目)读取的都是同样的数据,既然都是读取同样的数据(尤其读取同样的session_id()值),那么我们不就可以凭借此标识符让不同用户显示不同的内容,多点登陆的问题不就解决了
(把问题简化,登录对于用户看来是一个特别的过程,在我们开发者看来无非就是让不同的人读取到不同的数据而已,而我们只需要获取那个登陆标识符即可)。
也就是说,session共享的关键技术点在于两点:
1. 让客户端访问同一个sessionId,
2. 让所有域名对应的服务器访问的Session的数据的位置必须一致
下面重点讲讲实现,Session共享相对于Cookie共享来说较为复杂,因为情况相对于比较多,大概有四种情况
同服务器同域名,同服务器不同域名,不同服务器同域名,不同服务器不同域名。
同服务器同域名(不同子域名)的实现:
实现比较简单,直接找一份网上的demo(图侵删),直接按照以下的代码实现即可。
同服务器不同域名的实现:
这种情况下,我们再次明确实现session共享的关键技术点,同一个sessionId,同样的数据源。
不同域名的话就要先将cookie('PHPSESSID')跨域,然后通过这个sessionid值从MySQL数据库或者Nosql中取得对应数据,这样就实现了同服务器不同域名的session共享。
首先是cookie跨域:
然后是Redis数据共享,key就是session_id,值就是需要共享的数据,使用到的就是Redis的集群技术,实例过于复杂,感兴趣的可以直接去文章查看:redis cluster 集群 安装 配置 详解
不同服务器同域名的实现:
此种情况与<同服务器不同域名的实现>同服务器不同域名的实现>差不多,但在此种情况下不需要考虑cookie跨域的问题了,那么着重实现数据共享即可,同上,key为sessio_id,值为具体的数据值,参考文章同上redis cluster 集群 安装 配置 详解。
不同服务器名不同域名的实现:
此种情况和<同服务器不同域名的实现>同服务器不同域名的实现>图探访,也是要实现两个目标,同一个sessionId,同样的数据源。不同域名的话就要先将cookie('PHPSESSID')跨域,然后通过这个sessionid值从MySQL数据库或者Nosql中取得对应数据,这样就实现了同服务器不同域名的session共享。
首先是cookie跨域:
然后是Redis数据共享,key就是session_id,值就是需要共享的数据,使用到的就是Redis的集群技术,实例过于复杂,感兴趣的可以直接去文章查看:redis cluster 集群 安装 配置 详解。
我们发现四种情况下的解决方式都差不多,第2种情况<同服务器不同域名的实现>同服务器不同域名的实现>和第四种情况<不同域名不同服务器的实现>不同域名不同服务器的实现>更是基本一样,其中的核心思想无非就是解决两个根源问题,session_id大家需要获取同一个,有一个共享的数据源需要给大家获取。
搞明白了这两点,Session共享的SSO也就水到渠成了。
有疑惑可直接在评论区询问,我会立即回答。
能不用ucenter就不要用。。。简直疼
除了SSO还有用户数据整合的问题。
为了解决这个问题,我干脆去开发一个支持多站点多类型的建站程序了。
用cookie然后各自用户的信息独立存储
内容总结
以上是互联网集市为您收集整理的linux-PHP单点登录哪个的解决方案比较好点全部内容,希望文章能够帮你解决linux-PHP单点登录哪个的解决方案比较好点所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。