> 跨域共享,主要是修改cookie和session的domain,設置為“**主域**”,即可達到目的。
> 修改/common/config/main.php
1. 在config頭部上加上以下代碼
~~~
//Session 跨域
$host = explode('.', $_SERVER["HTTP_HOST"]);
if (count($host) > 2) {
define('DOMAIN', $host[1] . '.' . $host[2]);
} else {
define('DOMAIN', $host[0] . '.' . $host[1]);
}
~~~
2. 在config的components配置中加入
~~~
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => ['name' => '_identity', 'httpOnly' => true,'domain' => '.'.DOMAIN],
],
'session' => [
'cookieParams' => ['domain' => '.'.DOMAIN, 'lifetime' => 0],
'timeout' => 3600,
],
~~~
3. controller中使用
~~~
//設置
Yii::$app->session['var']='value';
//使用
echo Yii::$app->session['var'];
//移除
unset(Yii::$app->session['var']);
~~~
這樣單點登陸基本實現, 從login.xxx.com 登陸后, 去到www.xxx.com session 依然有效果。
- 基礎教程
- 入門安裝
- Yii2 composer 安裝慢解決
- Cookies
- 數據庫操作
- 數據提供者
- 助手類
- 驗證規則
- GridView
- DetailView
- YII2分頁
- JS、CSS的引用
- Excel導出
- 中文轉拼音
- 發送郵件
- 第三方插件
- Session跨域共享
- Url跨域訪問
- 場景應用
- 查詢條件鏈
- Session分布式共享
- Redis的使用
- mongodb
- 高級教程
- 自定義gii模板
- 角色權限管理(RBAC)
- user組件的配置
- 國際化(I18N)
- 小部件(Widget)
- 模塊(Module)
- 行為(Behavior)
- 緩存(Cache)
- migrate 數據庫遷移
- phpstorm
- 快捷鍵
- 自定義
- 其它插件