首页 > PHP单点登录怎么实现?

PHP单点登录怎么实现?

PHP单点登录怎么实现?有通用方案吗?


要看在什么层级,分布式的话session改造就比较麻烦了,token的方式更好


方法一:通过Web Service实现用户身份验证,验证通过后将自动随机生成身份验证票据,并将身份验证票据发送给用户,待用户访问其他应用时,只对身份验证票据进行合法性验证即可。
方法二:通过CAS服务器进行用户身份验证。

 下面是这个身份验证协议中的主要步骤。
 用户尝试使用应用程序的 URL 访问应用程序。用户被重定向到 CAS 登录 URL,采用的是 HTTPS 连接,他请求的服务的名称作为参数传递。这时向用户显示一个用户名/密码对话框。
 用户输入 ID 和密码,CAS 对他进行身份验证。如果身份验证失败,目标应用程序根本不会知道这个用户曾经试图访问它 —— 用户在 CAS 服务器上就被拦住了。
 如果身份验证成功,CAS 就将用户重定向回目标应用程序,并在 URL 中附加一个称为 ticket 的参数。然后,CAS 尝试创建一个称为 ticket-granting cookie 的内存 cookie。这是为了以后进行自动的重新验证;如果存在这个 cookie,就表示这个用户已经成功地登录了,用户就不需要再次输入他的用户名和密码。
 然后,应用程序要检查这个 ticket 是否正确,以及是否代表一个有效用户;检查的方法是,打开一个 HTTPS 连接来调用 CAS servicidate URL,并作为参数传递 ticket 和服务名称。CAS 检查这个 ticket 是否有效,以及是否与请求的服务相关联。如果检查成功,CAS 就将用户名返回给应用程序。

方法三:使用基于开源的单点登录框架...


保存登录信息到cookie/session。
具体实现随意看个框架登录模块。


学微博啊,最简单易实现的单点登录

做一个sso站点,专门负责登录的,这里假设为站点S,业务站点为A B C D,4个业务站点判断是否登录,没有就跳S判断,S如果判断已登录,返回token到A B C D,业务站点再根据token取用户信息,一般都是存mc或redis,奇葩你可以存DB。。。。当然建议S用https


【热门文章】
【热门文章】