2016-09-21 17:07:54 3386次浏览 4条回答 2 悬赏 10 金钱

如果我在一个框架下有两个模块,都有登录功能,怎么样能让他们两都分开验证,而不是比如我登录了一个模块,另一个模块都不用登录都进来了,不知道在哪里配一下

最佳答案

  • 回答于 2016-09-21 18:49 举报

    讲道理,这恐怕有些困难

    1. user组件是属于应用的。模块恐怕无法单独拥有。
    2. 模块与模块之间是属于同一个入口文件的,也就是在同一个域名下。同一个域名如果存在两个用户session信息的话。user组件恐怕要蒙圈。

    其实可以换种方式

    1. 比如不同模块即使共用同一个登录,但给予不同权限还是可以的。
    2. 开两个应用。每个应用可以单独拥有一个user组件,怎么玩都可以。例如高级版。
  • 回答于 2016-09-22 17:52 举报

    归根结底就是要修改config/main.php里面components下的session组件的name值和user组件identityCookie的name值。
    方法就有多种了,
    1,可以用高级版的方法,直接建新的项目。不同入口加载不同配置。
    2,可以在入口文件上做判断,根据模块添加不同的配置文件。
    3,添加beforeRequest方法:用Yii::$app->session 配置session组件和Yii::$app->user配置user组件。

  • 回答于 2018-04-24 17:26 举报

    在模块配置中,配置user组件,重点是idParam参数,user组件在保存id的session时,用的是idParam作为key,所以设置不同模块的idParam不同就可以了。

    'components' => [
        'user' => [           
            'class'=>'\yii\web\User',
            'enableSession'=>true,
            'identityClass' => 'common\models\User',
            'idParam'=>'frontId',
        ],
    ],
    
您需要登录后才可以回答。登录 | 立即注册
lyglzhl
试用期

lyglzhl

注册时间:2016-06-13
最后登录:2018-09-03
在线时长:2小时21分
  • 粉丝0
  • 金钱5
  • 威望0
  • 积分25

热门问题