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制作静态网站的模板框架(三)
Oct 09 PHP
在PHP中使用灵巧的体系结构
Oct 09 PHP
傻瓜化配置PHP环境――Appserv
Dec 13 PHP
发布一个用PHP fsockopen写的HTTP下载的类
Feb 22 PHP
PHP $_SERVER详解
Jan 16 PHP
PHP 图像尺寸调整代码
May 26 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
php PDO异常处理详解
Nov 20 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 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运行速度的一些小技巧分享
2012/07/03 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
php读取csc文件并输出
2015/05/21 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
js 函数的副作用分析
2011/08/23 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
Python如何获取系统iops示例代码
2016/09/06 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
天鹅的故事教学反思
2014/02/04 职场文书
《太阳》教学反思
2014/02/21 职场文书
导游欢送词
2015/01/31 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
高中语文教学反思范文
2016/02/16 职场文书
浅谈react useEffect闭包的坑
2021/06/08 Javascript