2015-06-03 16:26:17 5019次浏览 2条回答 2 悬赏 10 金钱

一个yii项目下有好多个子项目,每个子项目都有登录功能,怎么区分不同的session

最佳答案

  • mafeifan 发布于 2015-06-03 22:47 举报

    高级模版中,为了不让前后台共用session,可以在配置文件中起不同的名字
    \backend\config\main.php

    'components' => [
            'user' => [
                'identityClass' => 'common\models\User',
                'enableAutoLogin' => false,
                'identityCookie' => [
                    'name' => '_backendIdentity', // unique for backend
                    'path' => dirname(__DIR__)  // correct path for the backend app.
                ]
                //'absoluteAuthTimeout' => 60*60*24,
                // 未任何操作超时退出
                //'authTimeout' => 60*10,
            ],
            'session' => [
                'name' => 'PHPBACKSESSID',
                //'savePath' => dirname(__DIR__)  . '/runtime/session',
            ],
    

    前台

        'components' => [
            'user' => [
                'identityClass' => 'common\models\User',
                'enableAutoLogin' => true,
                'identityCookie' => [
                    'name' => '_frontendIdentity', // unique for frontend
                    'path' => dirname(__DIR__)  // correct path for the frontend app.
                ]
            ],
            'session' => [
                'name' => 'PHPFRONTSESSID',
                //'savePath' => dirname(__DIR__)  . '/runtime/session',
            ],
    
    觉得很赞
  • 回答于 2015-06-03 16:30 举报

    都说是子项目了,那么就需要开启多个Application至于登录自然可以区分出来。如果每个项目的账号密码都一样,那么只是使用同一个Model。

    2 条回复
    回复于 2015-06-15 22:56 回复

    如果你部署在同一个域名下,你会发现并不是你说的这样,因为根域相同,且前缀相同,最终结果是,你登陆一个模块,则另一个模块必然掉线,你可以用localhost部署不同的端口来测试我说的问题。

    说的是正确的,只有通过区分COOKIE和SESSION前缀来判断。

    回复于 2015-06-16 22:11 回复

    恩,谢谢,你说的我测试过了,确实是的,之前就一直被这两个不同的布署困扰了很久

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
guan
主管

guan

注册时间:2015-04-01
最后登录:2019-07-15
在线时长:19小时4分
  • 粉丝4
  • 金钱314
  • 威望0
  • 积分504

热门问题