谁一开始就是大神?

restapi通过AccessControl过滤权限时始终提示登录[2.0]

项目前后分离,接口时restful,我在main.php里配置了AccessControl,如下

'as access' => [
    'class' => 'rbac\components\AccessControl',
    'allowActions' => [
        'v1/user/login',
    ]
],

我在BaseController中重写了behaviors函数,添加了通过HttpBearerAuth做access_token的验证,如下:

public function behaviors()
{
    $behaviors = parent::behaviors(); 
    $behaviors['authenticator'] = [
        'class' => HttpBearerAuth::className(),
        'optional' => [
                'login',
                'signup',
                'logout'
        ],
    ];


    return $behaviors;
}

我登录后,在请求其他接口时,按理说会先执行HttpBearerAuth的token验证,然后再执行AccessControl的beforeAction做权限过滤,但是我这样配置后,调试发现,总是先执行了AccessControl的beforeAction,因为此时还没有做token的登录认证,所以提示“Login required”. 感觉是配置顺序除了问题。在config->main.php中配置的'as access' => 'AccessControl'会在其他行为执行之前先执行吗?

打印head头里面有木有数据

赞(0) 打赏
未经允许不得转载:菜鸟之家 » restapi通过AccessControl过滤权限时始终提示登录[2.0]

评论 抢沙发

登录

找回密码

注册