Yii2.0前后台登录分离

LZ分析前后台[登录]三种情况

A、共用一个验证体系和一个数据表。

B、两个验证体系和共用一个数据表。

C、两个验证体系和两个数据表。

yii2.0高级版里面默认是A类型,即数据表一样,前台frontend登录/登出了,后台backend也同样登录/登出

我们这里讲述的是C类型


一、创建前后台登录数据表

安装yii2.0后目录下common/console/migrations默认拥有迁移的类(可创建user表)

鄙视创建后台用户表admin

1、使用如下命令来创建一个新的迁移(创建后台用户表admin):

yii migrate/create admin

【说明】common/console/migrations下生成一个新的迁移类(后缀为_admin.php)

【注意】也可直接复制common/console/migrations下的_init.php文件修改名称后缀为为_admin.php

参考已拥有的迁移类_init.php设置方法参数,注意修改表名{{%admin}}


2、使用如下命令来提交所有新的迁移

yii migrate
【说明】执行命令后数据库生成如下

生成admin、user表后,我们就需要将前台登录和后台登陆彻底分开了

二、分离前后台登录

1、frontend前台修改

首先---->把公用的common/models中的User.php和LoginForm.php移动到frontend/models中去
然后---->将这两个文件的命名空间改为以frontend开头,
最后---->将整个前台文件看一遍,把所有涉及到这两个common文件命名空间的需要都改为前台自己的命名空间。

2、backend后台修改

首先---->把公用的common/models中的User.php和LoginForm.php移动到backend/models中去[注意:修改User.php为Admin.php,类内的名称对应修改]
然后---->将这两个文件的命名空间改为以backend开头,
最后---->将整个后台文件看一遍,把所有涉及到这两个common文件命名空间的需要都改为后台自己的命名空间。
【注意修改对应的类名,表名】
backend/models/Admin中


bakcend/models/LoginForm.php中


[说明]
a、前后台修改完成后,可删除common内的LoginForm.php 、User.php
b、由于后台没有注册,可以前台注册一个用户名,复制到admin表中,当然LZ是为了快速方便完成前后台分离,您也可以自己编写一个后台注册页面,(后台是超级管理员,一般外部人员不允许注册的)
c、现在前后台都能按照自己数据库里的数据来登录了,但是由于session等验证公用一个,所以还是退出时,前后台一起退出
下面我们进行进一步的配置

三、前后台登录退出【配置】

1、前台,在frontend/config/main.php或者main-local.php中
$config = [
    'components' => [
        'user' => [
            'identityClass' => 'frontend\models\User',
            'enableAutoLogin' => true,
            'identityCookie' => [
                'name' => '_frontendUser', // unique for frontend
            ]
        ],
        'session' => [
            'name' => 'PHPFRONTSESSID',
            'savePath' => sys_get_temp_dir(),
        ],
        'request' => [
            'cookieValidationKey' => '8rqO22WJ9yiAx_KuJ8SFnbKctqGDWi9J',  //随机字符串
            'csrfParam' => '_frontendCSRF',
        ],
    ],
];
2、后台,在backend/config/main.php或者main-local.php中【图示详解】


【注意】:前后台配置参数大体相同
【说明】这里是LZ在另一位lz看到的一段话,送给各位【可能有些强迫症患者想同Yii1那样用Yii::$app->admin->id来访问后台用户id,这个不太好实现,Yii2和Yii1相比,用户验证这块改动比较大,web/User在Yii2框架中作为核心组件,如果要修改的话可能还要关联修改web/Application中的变量方法等,个人感觉没必要。】,如果您有兴趣,可以试试
至此,前后台分离登录,互相不受影响 奋斗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红尘炼炼心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值