yii identity为空

问题咨询 · docker11931 · 于 5年前 发布 · 1696 次阅读

发现继承AppserverController 的控制器方法都能打印出Yii::$app->user信息;但是继承AppserverTokenController 打印出来确是null ; AppserverTokenController中的init方法中加Yii::$service->customer->loginByAccessToken()这一句后,才能正常打印出Yii::$app->user信息 这个本来就是这样子么?

共收到 3 条回复
Fecmall#15年前 0 个赞

不需要

Fecmall#25年前 0 个赞

打开这个class

https://github.com/fecshop/yii2_fecshop/blob/master/app/appserver/modules/AppserverTokenController.php#L57

里面执行的yii 行为

就是use fecshop\yii\filters\auth\QueryParamAuth;

打开这个文件:

https://github.com/fecshop/yii2_fecshop/blob/master/yii/filters/auth/QueryParamAuth.php#L27

public function authenticate($user, $request, $response)
    {   
        $identity = Yii::$service->customer->loginByAccessToken(get_class($this));
        if($identity){
            return $identity;
        }else{
            $cors = Yii::$service->helper->appserver->getYiiAuthCors();
            if (is_array($cors)) {
                foreach ($cors as $c) {
                    header($c);
                }
            }
            $code = Yii::$service->helper->appserver->account_no_login_or_login_token_timeout;
            $result = [ 'code' => $code,'message' => 'token is time out'];
            Yii::$app->response->data = $result;
            Yii::$app->response->send();
            Yii::$app->end();
        }
    }

可以看到这里已经执行。

Fecmall#35年前 0 个赞

猜测,你可能是重写

https://github.com/fecshop/yii2_fecshop/blob/master/app/appserver/modules/AppserverTokenController.php#L57

behaviors()方法导致了,去掉重新看一下是否恢复。

 $behaviors['authenticator'] = [  
            'class' => CompositeAuth::className(),  
            'authMethods' => [  
                # 下面是三种验证access_token方式  
                //HttpBasicAuth::className(),  
                //HttpBearerAuth::className(),  
                # 这是GET参数验证的方式  
                # http://10.10.10.252:600/user/index/index?access-token=xxxxxxxxxxxxxxxxxxxx  
                QueryParamAuth::className(),  
            ],  
          
        ]; 
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics