2015-09-25 10:46:41 3340次浏览 1条回答 0 悬赏 10 金钱

一个action不是一定需要验证才能访问,有凭证的就验证登录,没有的话也可以访问,怎么搞?

  • 回答于 2015-09-25 11:35 举报

    在controller的behaviors中配置authenticator的时候指定except数组中的action,就不需要通过验证,代码如下。 但要实现有凭证就验证登录,没有的话也可以访问,放在同一个action感觉不是很好,根据用到的场景,不需要权限获取的资源还是单独用一个action比较好吧,个人建议。

    public function behaviors()
    {
        return array_merge(
            parent::behaviors(),
            [
                'authenticator' => [
                    'class' => CompositeAuth::className(),
                    'authMethods' => [
                        HttpBasicAuth::className(),
                        HttpBearerAuth::className(),
                        QueryParamAuth::className(),
                    ],
                    'except' => [
                        'create',
                    ],
                ],
            ]
        );
    }
    
    public function actions()
    {
        return [
            'create' => [
                'class' => 'frontend\modules\v1\actions\user\CreateAction',
                'modelClass' => $this->modelClass,
                'checkAccess' => [$this, 'checkAccess'],
                'scenario' => $this->createScenario,
            ],
        ];
    }
    
    1 条回复
    回复于 2015-09-25 11:53 回复

    不能分开两个action!

您需要登录后才可以回答。登录 | 立即注册
dyllen
经理

dyllen

注册时间:2014-09-09
最后登录:2020-10-16
在线时长:48小时47分
  • 粉丝8
  • 金钱400
  • 威望80
  • 积分1680

热门问题