2017-09-27 20:38:04 6697次浏览 1条回答 0 悬赏 20 金钱

他是继承 `
yii\rest\Controller;


public function behaviors()

{
    $behaviors = parent::behaviors();
    $behaviors['authenticator'] = [
        'class' => CompositeAuth::className(),
        'authMethods' => [
            HttpBasicAuth::className(),
            HttpBearerAuth::className(),
            QueryParamAuth::className(),
        ],
    ];
    $behaviors['access'] = [
        'class' => \yii\filters\AccessControl::className(),
        'only' => $this->actions,
        'except' => $this->except,
        'rules' => [
            [
                'allow' => false,
                'actions' => empty($this->mustlogin) ? [] : $this->mustlogin,
                'roles' => ['?'], // guest
            ],
            [
                'allow' => true,
                'actions' => empty($this->mustlogin) ? [] : $this->mustlogin,
                'roles' => ['@'],
            ],
        ],
    ];
    $behaviors['verbs']=[
        'class' => \yii\filters\VerbFilter::className(),
        'actions' => $this->verbs,
    ];
    return $behaviors;
}

补充于 2017-09-28 09:58

哭,我想说。上面的那个方法是继承 yii\rest\Controller; 一旦authenticator开启认证,所有的方法都会需要传递accessToken正确的值 才能访问 所以我想使用behaviors的access 来过滤,但是没有效果,文档说用checkAccess重写activeController的checkAccess放发,但是我在父级没看到checkAccess,测是了checkAccess也不能过滤,说明checkAccess不可以重写

补充于 2017-09-30 11:30

已经解决

'optional' => [
                'index',
            ],

最佳答案

  • mercis 发布于 2017-09-28 09:10 举报

    你想表达什么,兄弟,喝口水,慢慢说

    2 条回复
    回复于 2017-09-28 09:58 回复

    哭,我想说。上面的那个方法是继承 yii\rest\Controller; 一旦authenticator开启认证,所有的方法都会需要传递accessToken正确的值 才能访问 所以我想使用behaviors的access 来过滤,但是没有效果,文档说用checkAccess重写activeController的checkAccess放发,但是我在父级没看到checkAccess,测是了checkAccess也不能过滤,说明checkAccess不可以重写

    回复于 2017-09-28 10:56 回复

    文章来源 http://www.dannisi.xin.
    如果你遇到了这样的问题: Your request was made with invalid credentials. 你可以在***\vendor\yiisoft\yii2\filters\auth\QueryParamAuth.php 中 authenticate 打印$accessToken 如果为空的话 改成 $accessToken = $request->headers->get($this->tokenParam);

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
ok
助理

ok

注册时间:2017-03-01
最后登录:2024-05-10
在线时长:14小时46分
  • 粉丝1
  • 金钱50
  • 威望0
  • 积分190

热门问题