PHP简单实现单点登录功能示例

前端之家收集整理的这篇文章主要介绍了PHP简单实现单点登录功能示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP简单实现单点登录功能分享给大家供大家参考,具体如下:

1.准备两个虚拟域名

127.0.0.1 www.openpoor.com 127.0.0.1 www.myspace.com

2.在openpoor的根目录下创建以下文件

index.PHP

PHP;"> <Meta charset="UTF-8"/> sync login hello,游客;请先登录进入空间 hello,;进入空间 home

login.PHP

PHP;"> <Meta charset="UTF-8"/> sync login
用户名"/> 登录"/>

sync.PHP

PHP;"> <Meta charset="UTF-8"/>

3.在myspace的根目录下创建如下文件

slogin文件 完成session的设置

PHP;">

index.PHP

PHP;">

4.Des.PHP文件内容如下

PHP;"> PHP /** *@see Yii CSecurityManager; */ class Des{ public static function encrypt($data,$key){ $module=mcrypt_module_open('des','',MCRYPT_MODE_CBC,''); $key=substr(md5($key),mcrypt_enc_get_key_size($module)); srand(); $iv=mcrypt_create_iv(mcrypt_enc_get_iv_size($module),MCRYPT_RAND); mcrypt_generic_init($module,$key,$iv); $encrypted=$iv.mcrypt_generic($module,$data); mcrypt_generic_deinit($module); mcrypt_module_close($module); return md5($data).'_'.base64_encode($encrypted); } public static function decrypt($data,$key){ $_data = explode('_',$data,2); if(count($_data)<2){ return false; } $data = base64_decode($_data[1]); $module=mcrypt_module_open('des',mcrypt_enc_get_key_size($module)); $ivSize=mcrypt_enc_get_iv_size($module); $iv=substr($data,$ivSize); mcrypt_generic_init($module,$iv); $decrypted=mdecrypt_generic($module,substr($data,$ivSize,strlen($data))); mcrypt_generic_deinit($module); mcrypt_module_close($module); $decrypted = rtrim($decrypted,"\0"); if($_data[0]!=md5($decrypted)){ return false; } return $decrypted; } } ?>

当在openpoor登录后将session信息传到其他域名下的文件下进行处理,以script标签包含的形式进行运行。

5.此时访问www.openpoor.com和www.myspace.com都是未登录状态

登录后两个域名下都是登录状态

到此我们实现了一个简单的单点登录

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《PHP数学运算技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

原文链接:https://www.f2er.com/php/16234.html

猜你在找的PHP相关文章