- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PHP单点登录的简单实现以及webserver的简单使用PHP单点登录的简单实现以及webserver的简单使用说明:自己学习的一些记录和备忘,有什么问题还请指正简单实现三个站点的单点登录,在一个站点登录,其他站点自动登录,一个站点退出,其他站点同时退出假设有三个站点siteA 域名为sitea.xxxsiteB 域名为siteb.xxxsiteC 域名为sitec.xxxsiteC提供统一登录认证服务要实现单点登录要满足如下的条件:站点SESSION的共享,不管用户数据库是否是单独的,SESSION一定要是公共的。(这里用memcached解决共享SESSION的问题)所有站点能共享一个登录凭证。(对php程序来说,SESSION ID 是最简单的方法了)所以,只要能把siteA的session id 传递给 siteB等其他站点就好办了,我们可以使用jsonp或者隐藏的iframe达到这个目的首先在sitec上建立webserver服务端,(其他方式的登录认证API接口都可以)soap_server.php第一步,开启session,保存到memcache;第二步,建立webserver,建议使用PHP自带的soap扩展.默认soap的扩展是没有加载的,所以你可能需要检查php.ini是否打开了如果不知道什么是soap,{点击这里}.soap扩展我们主要使用三个类:soapSever,soapCilent和soapFault;SoapServer用于创建php服务器端页面时定义可被调用的函数,方法,对象,类及返回响应数据。SoapClient用于调用远程服务器上的SoapServer页面,并实现了对相应函数的调用。SoapFault用于生成soap访问过程中可能出现的错误。Soap服务有两种模式:WSDL模式:需要手动创建一个WSDL文件.如果各个站点是不同的语言写的,比如有的用java,有的用PHP,那么用wsdl吧,接口也一目了然{使用方法}Non-WSDL模式:如果所有站点都是PHP的,这种方法简单省事,效率也要高一点。这里使用Non-WSDL的模式ini_set('session.save_handler', 'memcache');ini_set('session.save_path', ':11211');session_start();//开启webserver,启动登录和认证服务require_once 'Authorize.class.php';$options = array( 'location' => 'http://sitec.xxx/soap_server.php', 'uri' => 'soap_server.php');//无wsdl模式$wsdl = null; $soap = new SoapServer($wsdl, $options);$soap->setClass("Authorize");$soap->handle();Authorize.class.php你的webserver类class Authorize { const KEY ="a*v%^*(OH"; //ticket加密解密的密钥/** * login 登录服务并返回多点登录的ticket * @param type $username 用户登录名或者id * @param type $password 登录密码 * @param type $login_site 来源的站点(为防止加密解密失败,约定为 xxxx.xx(如:abc.xxx) 格式,自行处理) * @param type $ip 登录用户客户端IP * @return array 返回数组,error=>错误信息,'sessid'=>session id,'sso_script'=>多点登录接口脚本,ticket=>多点登录凭证*/ public function login($username = '', $password = '', $login_site = '', $ip = '') { if ($login_site == '' || $username == '' || $password == '') { return array();}//分配并获取session_id(); $sid = session_id();//返回值结构 $result = array( 'error'=>'', //错误信息 'sessid' => $sid, //session id"sso_script"=> 'http://sitec.xxx/sso.php?ticket=', //多点登录的脚本地址'ticket'=>'');//连接数据库,可能
您可能关注的文档
- PEP小学英语三年级下册unit1教学设计.doc
- 【中考必考化学专题突破】混合物分离(含答案).docx
- PET考试单词带中文意思.doc
- Python基础知识点.docx
- PPP100问(上).doc
- QCS水库有机物去除项目进度的控制及保障措施.docx
- QD02岗位规范.doc
- QTZ6012xxx酒店塔吊安装拆除方案.doc
- RFID资产管理系统(有源版方案).docx
- S316安全监理细则.doc
- GB/T 29324-2024架空导线用碳纤维增强复合材料芯.pdf
- 《GB/T 29324-2024架空导线用碳纤维增强复合材料芯》.pdf
- GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 《GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集》.pdf
- 中国国家标准 GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 中国国家标准 GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- 《GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范》.pdf
- GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
- 中国国家标准 GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
文档评论(0)