zoukankan      html  css  js  c++  java
  • YII 增加登陆认证

    YII验证身份值可以设置一个MODEL来做为身份认证登陆的数据来源,这样当一个WEB应用中有两个角色并且都使用ACCESS TOKEN登陆时就会错误的把另一角色列为未认证的用户。

    解决方法是修改框架认证部分的代码如下:

    1. 在WEB CONFIG中设置另一个TOKEN的名字,注意如果有两种角色,那么必须让他们的TOKEN的名字是不一样的。

            'user' => [
                'identityClass' => 'appmodelsCustomer',//角色CUSTOMER
                'gzhIdentityClass' => 'appmodelsGzhAd',//角色GZH
                'enableAutoLogin' => false,//disable the cookie login
            ],

    2. 在USER COMPONENT(basic/vendor/yiisoft//yii2/web/user.php)中配合修改一要增加相应的字段名字,这里是$gzhIdentityClass
        public $identityClass;
        public $gzhIdentityClass;

    3.在query parameter中要增加token的名字

        public $gzhTokenParam = 'gzhToken';

        并且还要相应的判断

            //validate the token from 3rd party sever
            $gzhAccessToken = $request->get($this->gzhTokenParam);
            if (is_string($gzhAccessToken)) {
                $identity = $user->loginByGzhAccessToken($gzhAccessToken, get_class($this));//在这里要调取USER COMPONENT中的loginByGzhAccessToken
                if ($identity !== null) {
                    return $identity;
                }
            }

     4.在USER COMPONENT中要实现3中的loginByGzhAccessToken

        //validate the gzh access token
        public function loginByGzhAccessToken($gzhAccessToken, $type = null)
        {
            $class = $this->gzhIdentityClass;
            $identity = GzhAd::findIdentityByAccessToken($gzhAccessToken, $type);
            if ($identity && $this->login($identity)) {
                return $identity;
            } else {
                return null;
            }
        }

    5.在GZH MODEL中也要继承IdentityInterface
    并且实现所有接口

  • 相关阅读:
    JMeter实现登录初始化(类似LR的init函数功能实现)
    修改ini文件的批处理
    pycharm-professional-2017.1.1.exe专业版激活方法
    loadrunner下的putty和plink
    Centos下安装LoadRunner负载机
    VMware安装操作系统提示 " Intel VT-x 处于禁用状态"解决方法
    mongodb中投票节点作用
    crunch创建自己的密码字典文件
    Nessus忘记密码的解决
    shell判断文件是否为空
  • 原文地址:https://www.cnblogs.com/wlemory/p/4763232.html
Copyright © 2011-2022 走看看