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 相关文章推荐
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
因str_replace导致的注入问题总结
Aug 08 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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/11/26 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
jQuery基础知识小结
2014/12/22 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
优秀会计求职信
2014/07/04 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android