ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[php实现SSO单点登录实例](https://my.oschina.net/u/4479011/blog/4283043) [php的sso单点登录实现方法,代码实例](https://www.cnblogs.com/feimengv/p/5800226.html) [PHP版单点登陆实现方案的实例\_php实例\_脚本之家 (jb51.net)](https://www.jb51.net/article/97531.htm) [php的sso单点登录实现方法,代码实例! - feimengv - 博客园 (cnblogs.com)](https://www.cnblogs.com/feimengv/p/5800226.html) [单点登录sso原理及php实现方式及demo (hu-rong.com)](http://www.hu-rong.com/article/395) 可以去composer搜下sso 有几个完整的例子 自己搭就去找个包 用第三方的楼上那个可以 或者直接买服务 思路: 可以配合session和数据库(或缓存如redis或memcache)实现,具体步骤如下: 1. 在登录成功后保存一个时间戳+随机字符的值,这个值暂时叫sign。把这个值存入数据库(缓存),同时也存入session中。 2. 写一个函数,功能如下:读取数据库(缓存)中的sign,跟session中的sign对比。如不一致,则注销当前session并提示:当前用户已在其他地方登录,你被顶下线。这个函数放到“钩子”里面,实现在每一个操作步骤之前都先调用此函数。 这样,一个简单的单点登录功能就实现了。原理其实很简单,就是每次登录都把数据库(缓存)里面的sign都覆盖一遍,这样当之前登录的人检测到这个sign不一致以后就强制下线。 单点登录一般不采用OpenId的概念,OpenId一般是外部验证才采用的。单点登录一般从登录系统登录并在登录系统域写身份 cookie 后,会跳转到其他系统的一个回调地址,带上 Ticket 参数,Ticket 是带有有限期的验证串,其他系统获得 Ticket 后从后台向登录系统验证 Ticket ,如果成功,则写入当前域的 cookie 和其他的身份信息。 关于登录后验证(主要是登出检查)这块,大多是有单点登录的网站采用的是你的第二种思路,也就是向所有系统发出登出信号,这个可以在登出后在用户端用 ajax 静默调用,一次调用多个也不会产生较大的影响。 [OAuth2实现单点登录SSO - 废物大师兄 - 博客园 (cnblogs.com)](https://www.cnblogs.com/cjsblog/p/10548022.html)