yii2.0 局部关闭csrf,让应用的回调可以post

Posted 天天搞P

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yii2.0 局部关闭csrf,让应用的回调可以post相关的知识,希望对你有一定的参考价值。

太累了不想推送教程了,明天学习


首先新建一个 Behavior

  在所在应用中 components(如果没有就新建一个文件件),然后在里面新增一个行为,暂叫做 nocsrf.


<?phpnamespace mobile\components;use Yii;use yii\base\ActionEvent;use yii\base\Behavior;use yii\web\Controller;class NoCsrf extends Behavior{    public $actions = [];    public $controller;    public function events()    {        return [Controller::EVENT_BEFORE_ACTION => 'beforeAction'];    }    public function beforeAction($event)    {        $action = $event->action->id;        if(in_array($action, $this->actions)){            $this->controller->enableCsrfValidation = false;        }    }}

然后,在控制器中use



use mobile\components\NoCsrf;



public function behaviors(){    return [        'csrf' => [            'class' => NoCsrf::className(),            'controller' => $this,            'actions' => [                'notify',            ]        ]    ];}

注意actions是指的具体的方法,比如 actionNotify ,你就协商notify 。就行了


完毕


以上是关于yii2.0 局部关闭csrf,让应用的回调可以post的主要内容,如果未能解决你的问题,请参考以下文章

我可以让其他应用程序在我的应用程序中打开关闭回调吗

Yii2.0 事件的简单用法

学习yii2.0——依赖注入

CSRF验证

应用程序关闭时如何接收 Android Nougat 网络丢失的回调?

每个请求的 Csrf 令牌 [关闭]