Yii2实现多域名跨域同步登录退出的实例代码及讲解

  • 更新时间:2020-06-16 08:33:43
  • 编辑:薛洁雅

在平台开发过程中,项目分为前台(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, 
    ], 

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

相关教程

  • yii2中LinkPager如何增加总页数和总记录数的示例代码

    本篇文章主要介绍了php中LinkPager增加总页数和总记录数的实例,具有一定的参考价值,有兴趣的可以了解一下

    发布时间:2020-03-19

  • 实例解析Yii2框架整合Xunsearch搜索引擎的方法

    这篇文章主要介绍了Yii2框架整合Xunsearch搜索引擎的方法,结合实例形式分析了Yii2框架整合Xunsearch的具体步骤与相关注意事项,需要的朋友可以参考下

    发布时间:2020-02-10

  • 关于Yii2 定制表单输入字段的标签和样式

    本篇文章主要介绍了 Yii2 定制表单输入字段的标签和样式,Yii2中对于表单和字段的支持组件为ActiveForm和ActiveField,有兴趣的可以了解一下。

    发布时间:2020-02-05

  • 解析yii2页面底部加载css和js的方法

    这篇文章主要介绍了yii2 页面底部加载css和js的技巧的相关资料,需要的朋友可以参考下

    发布时间:2020-01-19

  • Yii2.0 rules验证规则总结分享

    本篇文章主要介绍了详解Yii2.0 rules验证规则集合 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    发布时间:2020-02-17

  • 实例分享Yii2中SqlDataProvider用法

    这篇文章主要介绍了Yii2中SqlDataProvider用法,结合实例形式分析了Yii2框架中使用SqlDataProvider类操作数据库的相关技巧,需要的朋友可以参考下

    发布时间:2020-03-16

  • yii2中关于加密解密的知识点总结

    yii2.0怎么对传输的数据进行加密解密?下面这篇文章就来给大家介绍了yii2中关于加密解密的那些事儿,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习

    发布时间:2020-03-26

  • 实例分享Yii2主题(Theme)用法

    这篇文章主要介绍了Yii2主题(Theme)用法,结合实例形式分析了Yii2主题(Theme)的配置方式、函数与相关属性的使用技巧,需要的朋友可以参考下

    发布时间:2020-03-09

  • PHP开发实例大全:提高卷

    PHP开发实例大全:提高卷

    《PHP开发实例大全(提高卷)》600经典实例及源码分析 25个应用方向 两卷共1225例 40个方向 分门别类实例一应俱全 供学习、速查、实践练习的超全参考手册 php开发实战1200例 php范例大全 之全新

    大小:241.1 MBPHP开发电子书

  • PHP与jQuery开发实例

    PHP与jQuery开发实例

    这书由浅入深地叙述了怎么使用PHP与jQuery搭建高宽比互动的Web运用。每一章聚焦点一个主题风格,探讨Web开发者常常必须处理的一类实际难题。书中以实际上范例及编码表述的方法得出了有目

    大小:9.8 MBPHP开发

  • Modern PHP

    Modern PHP

    本书让你会学到关于应用架构、规划、数据库、安全、测试、调试和部署方面的很好实践。如果你具有PHP基础知识,想提高自己的技能,不要错过这本书

    大小:28 MBPHP电子书

  • PHP 7 编程实战

    PHP 7 编程实战

    PHP7挟很多的、强劲的新作用和小工具强劲而成,应用这种作用和小工具能够 提升编码,编写出比老PHP版本号程序流程速度相当快的程序流程。这书主要详细介绍了PHP7有关的高级PHP编程技术。

    大小:11.2 MBPHP7电子书

  • php7.3.8官方手册文档

    php7.3.8官方手册文档

    PHP 7 是目前一代的 PHP,内部使用了 Zend 引擎 3 代, 除了很多新功能之外还提供了许多附加的 面向对象编程(OOP) 特性。php7.3.8版本-最新中文手册,chm格式-方便查找索引,需要的朋友可下载试试! 本手册很详细的介绍了PHP语言,以及怎么去用好这门语言,适合于初学者以及在编程过程中做辅助查询手册,PHP(PHP: Hypertext Preprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 WEB 开发。

    大小:31.5 MBphp学习

用户留言