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&mysql(一)
Oct 09 PHP
PHP4实际应用经验篇(2)
Oct 09 PHP
symfony表单与页面实现技巧
Jan 26 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
php生成Android客户端扫描可登录的二维码
May 13 PHP
Yii多表联合查询操作详解
Jun 02 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
thinkPHP5.1框架中Request类四种调用方式示例
Aug 03 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
DSP接收机前端设想
2021/03/02 无线电
PHP 选项及相关信息函数库
2006/12/04 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
js 单引号 传递方法
2009/06/22 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
python操作redis的方法
2015/07/07 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python实现图像拼接
2020/03/05 Python
python实现吃苹果小游戏
2020/03/21 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
python制作微博图片爬取工具
2021/01/16 Python
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
园艺师求职信
2014/03/10 职场文书
师范生小学见习总结
2015/06/23 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
详解Laravel制作API接口
2021/05/31 PHP
python如何利用cv2模块读取显示保存图片
2021/06/04 Python