php出现web系统多域名登录失败的解决方法


Posted in PHP onSeptember 30, 2014

本文实例讲述了php出现web系统多域名登录失败的解决方法,分享给大家供大家参考。具体分析如下:

下面只是简单的逻辑结构,对于正式的系统需要做具体的处理。

这里需要注意的是:加解密一定需要做安全验证。但是这个方法也不够完美,两个站点必须有相同一级域名;另外这种完全基于cookie的方式,安全性不够高

function login()
{
  $info = callloginserver(); //访问登录服务器
  if(!empty($info))  //登录成功了
}
//用户没有登录,则在本系统中登录并调用登录服务器接口
function login()  //正常的登录
{
  .......//验证用户的合法性
  $_session['uid'] = $user_id;
  setcookie('sign', encrypt($pass9), '', '/', 'the.com');
}

先检查用户是否在登录系统中登录

funtion sign()
{
 $sign = $_cookie['sign'];
 if(!empty($sign))
 {
   $sign = decrypt($sign);
  ..........///登录成功
 }
}

用户没有登录,则在本系统中登录并调用登录服务器接口

function loging() //本系统登录
{ 
 .....//登录成功
 callseverlogin();//通知用户登录
}

所有的站点共享一个登录系统;当用户在其中的一个站点登录成功时, 该系统调用其他站点的登录接口,完成用户在其他站点的登录,同时设置相应的登录信息;或者在用户登录时,只在该系统保存用户登录信息,当用户在其他站点登录时,必须请求该系统接口,获取用户是否登录的信息。前一种方式的缺点是:不管用户有没有使用其他站点,那些站点都需要保存用户状态;后一种方式就把所有的压力都转移到登录系统上面来。而如果要实现用户退出的统一操作,就需要站点调用登录系统的退出接口,然后登录系统接口调用其他站点的退出接口;或者设置一个标记,如果这个标记不存在则标示用户退出,此时只要把该标示清空即可,其他站点发现该标示不存在就知道用户已经退出系统。

这种处理方式需要在登录系统和个站点之间规定登录接口,和注销接口。通过这些接口,各站点可以很方便的处理用户登录或退出。

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

PHP 相关文章推荐
php中利用explode函数分割字符串到数组
Feb 08 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
PHP Filter过滤器全面解析
Aug 09 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
PHP实现查询手机归属地的方法详解
Apr 28 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
ThinkPHP5框架中使用JWT的方法示例
Jun 03 PHP
php中运用http调用的GET和POST方法示例
Sep 29 #PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 #PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 #PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 #PHP
推荐25款php中非常有用的类库
Sep 29 #PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 #PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 #PHP
You might like
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
原生js实现日历效果
2020/03/02 Javascript
Python中的ceil()方法使用教程
2015/05/14 Python
Python使用turtule画五角星的方法
2015/07/09 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
Python单例模式的两种实现方法
2017/08/14 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
生日主持词
2014/03/20 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
停水通知
2015/04/16 职场文书
2015年项目工作总结
2015/04/29 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python