Yii2 框架下 session跨域共享互通
在项目实施过程中,往往把一个大项目进行分拆成几个独立的项目,项目用完全独立的域名和文件,可以放到不同的服务器上的独立分项目。
几个子项目共用一个登录点. 原理简单来说就是服务端session 共享, 客户端跨域cookies.
在Yii2框架下只需要几部的配置就可以了:
在几个子项目下,找到config文件下的配置文件main.php
共同配置如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $host = explode ( '.' , $_SERVER [ "HTTP_HOST" ]); if ( count ( $host ) > 2) { define( 'DOMAIN' , $host [1] . '.' . $host [2]); } else { define( 'DOMAIN' , $host [0] . '.' . $host [1]); } 'components' => [ 'session' => [ 'cookieParams' => [ 'domain' => '.' . DOMAIN, 'lifetime' => 0], 'timeout' => 3600 * 24 * 30 ], 'user' => [ 'identityClass' => 'common\models\User' , 'enableAutoLogin' => true, 'identityCookie' => [ 'name' => '_identity-common' , 'httpOnly' => true, 'domain' => '.' . DOMAIN], ], ] |
这里是应用在用户登录的情况,更多模式可自己探索。
♥ 作者:离岸少年
♠ 出处:https://www.cnblogs.com/jackzhuo/
♣ 本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步