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 抽象类的简单应用
Sep 06 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 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遍历二维数组的代码
2011/04/22 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
javascript 快速排序函数代码
2012/05/30 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
儿童学习python的一些小技巧
2018/05/27 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
python 读取数据库并绘图的实例
2019/12/03 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
售后专员岗位职责
2013/12/08 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
表扬稿格式范文
2015/01/16 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL