基于PHP的sso单点登录实例

本文介绍了如何使用PHP实现单点登录(SSO)系统,包括基本思路、核心代码以及部署说明。SSO将用户验证过程集中在授权中心,各站点负责创建session。登录时,用户跳转至授权中心验证,验证成功后通过JavaScript、iframe或JSONP在各站点设置session,再返回原页面完成登录。登出操作类似,但不涉及验证。文章提供了代码下载链接和数据库配置指导。
摘要由CSDN通过智能技术生成

这里写图片描述

基本思路:

单点登录,需要一个授权中心,即上图中的auth.com。然后每个站点,还应该有自己的登录操作和登出操作。

我们一般登录操作可以分为以下2步:
1. 验证用户名和密码
2. 创建相关session
其实,sso单点登录就是把所有站点的第一步放在了授权中心里面,第二步还都是由每个站点完成。

比如,我们在站点A的某个页面点击登录,则跳转到授权中心(当前页面url作为get参数)。授权中心验证通过之后(第一步执行完成),调用所有站点的登录操作(使所有站点执行第二步)。在授权中心调用所有站点的登录操作,可以采用1. javascript标签的src引入;2. iframe框架引用;3. jsonp方式远程调用。在所有站点的登入操作完成以后,通过get参数中的url,跳转回站点A的该页面。此时,所有的站点就都登录完成了。登出操作的思路是类似的,只不过少了用户名和密码的验证而已。

bbs.com:
登入: bbs.com/index.php/login/login
登出: bbs.com/index.php/login/logout

space.com
登入: space.com/index.php/login/login
登出: space.com/index.php/login/logout

授权中心auth.com
首先,需要一个form,用来显示登录页面
auth.com/index.php/index/form
然后,需要验证用户名和密码,并对所有的站点,进行登入操作。
auth.com/index.php/index/login
最后,需要对所有的站点执行登出操作。
auth.com/index.php/index/logout

对所有站点执行登入操作(为站点种session)的核心代码:

<{foreach $
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值