jayrui612 2017-09-19 18:14:27 3120次浏览 0条评论 1 1 0

正常情况下 当前域名下的session只能在当前域名使用 如果将当前页面的 Yii::session->set('xxx','aaa') 跳转到其他域名的页面 就算获取 Yii::session['xxx'] 也是空 因为session_id已经变了
一般网站都会将个人中心passport独立出来 所以登录的状态是不能少的
当你在主站登录 跳转到个人中心登录 这样就跨域操作了 session的状态就无法维持了
1.png
2.png

本教程使用的是redis的方式来实现session共享
第一步引用redis

'redis' => [
    'class' => 'yii\redis\Connection',
    'hostname' => '45.78.6.193',
    'port' => 6379,
    'database' => 0,
],

第二步 每个项目下main components加入

'session' => [
    'class' => 'yii\redis\Session',
    'cookieParams' => [
        'domain' => $params['cookieDomain'] ,
        'lifetime' => $params['sessionLifetime'] ,
        'httponly' => true,
    ],
]

其中的 domain 是你域名后缀 比如你主站是 www.jay.com 个人中心是passprot.jay.com
domain就是.jay.com

ok 这样你主站上面定义一个session 二级域名下就能获取主站的session了

觉得很赞
    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册