Yii2实现多域名跨域同步登录退出


Posted in PHP onFebruary 04, 2017

在平台开发过程中,项目分为前台(frontend)www.xxx.com和后台(backend) yun.xxx.com两部分,绑定两个域名, 我们知道在没有绑定域名的时候前后台可以同步登录和退出,但是绑定域名后就失效了,原因是session的作用域不同了。 两个域名的session作用域都只限制在了自己的域名上,我们的解决办法是将不同二级域名的作用域都改成顶级域名xxx.com。

在common/config/main.PHP里面增加如下代码:

//跨域session域名配置,获取当前主机名 
$host_array = explode('.', $_SERVER["HTTP_HOST"]); 
//针对com域名,获取顶级域名 
if (count($host_array) == 3) { 
  define('DOMAIN', $host_array[1] . '.' . $host_array[2]); 
} 
//针对com.cn域名 
elseif (count($host_array) == 4) { 
  define('DOMAIN', $host_array[1] . '.' . $host_array[2]. '.' . $host_array[3]); 
} 
else{ 
  //echo "本系统不支持本地访问,请配置域名";exit; 
} 
define('DOMAIN_HOME', 'www.' . DOMAIN); 
define('DOMAIN_YUN', 'yun.' . DOMAIN); 
define('DOMAIN_API', 'api.' . DOMAIN); 
define('DOMAIN_EMAIL', 'mail.' . DOMAIN); 
define('DOMAIN_IMG', 'img.' . DOMAIN);

修改components部分,改变session作用域

'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => true, 
      'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => '.' . DOMAIN], 
    ], 
    'session' => [ 
      'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 
      'timeout' => 3600, 
    ],

通过上述配置后,多个二级域名间就可以实现同步登录和退出了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP中调用JAVA
Oct 09 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
PHP获取文件扩展名的4种方法
Nov 24 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
PHP http请求超时问题解决方案
Nov 13 PHP
php如何实现数据库的备份和恢复
Nov 30 PHP
PHP使用mysqli操作MySQL数据库的简单方法
Feb 04 #PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 #PHP
用PHP的socket实现客户端到服务端的通信实例详解
Feb 04 #PHP
关于PHP内置的字符串处理函数详解
Feb 04 #PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 #PHP
浅谈PHP中的错误处理和异常处理
Feb 04 #PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 #PHP
You might like
php 图像函数大举例(非原创)
2009/06/20 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
python微信公众号开发简单流程实现
2020/03/09 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
Linux的主要特性
2014/10/06 面试题
劳动工资科岗位职责范本
2014/03/02 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
检讨书模板
2015/01/29 职场文书
市场总监岗位职责
2015/02/11 职场文书
大学生求职自荐信
2015/03/24 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
Python Django搭建文件下载服务器的实现
2021/05/10 Python