2015-10-30 08:53:33 5679次浏览 6条回答 1 悬赏 100 金钱

在YII2 里面,不论是 get 还是 post,都对进行csrf验证,现在,我遇到的问题是,从接口返回的数据不携带上传过去的csrf验证,这种情况下,如何设置csrf的验证,关闭或者是怎么办?

最佳答案

  • 花椒 发布于 2015-10-30 09:03 举报

    可以在控制器里加一行:

    public $enableCsrfValidation = false;
    
    1 条回复
    回复于 2015-10-30 15:01 回复

    这个是给controller 类 这个属性,然后在action里调用么

  • 回答于 2015-10-30 09:04 举报

    从接口返回的数据,是指第三方异步调用你提供的restFulapi回调服务么?我这边也做过类似这种,场景是微信公众号的回调接口,当用户给公众号发消息的时候,微信服务器会自动往我提供的回调接口推送消息。我是直接针对这个action关闭掉csrf验证。具体就是设置controller::enableCsrfValidation 为false,这样,某个controller访问时,就不会做csrf验证了。

    1 条回复
    回复于 2015-10-30 15:00 回复

    好的,我试试看

  • 回答于 2015-10-30 09:28 举报

    关闭单个action的csrf验证就行了。

    在action中添加

    public $enableCsrfValidation = false;
    

    原来的贴的方法不是2.0的。

    3 条回复
    回复于 2015-10-30 15:08 回复

    NoCsrf 这个类,在手册里搜索不到。。

    回复于 2015-10-30 15:52 回复

    之前贴的方法有误

    回复于 2015-10-30 17:15 回复

    嗯嗯 ,搜索类没找到,定义的属性,

  • 回答于 2015-11-04 15:14 举报

    如果要所有的都关闭,可以配置全局(不建议)
    可以那个控制器需要配置哪一个!
    楼上的 public $enableCsrfValidation = false; 就可以!

  • 回答于 2016-08-12 10:59 举报

    在方法里添加$this->enableCsrfValidation = false;

  • 回答于 2017-06-07 14:27 举报

    123456

您需要登录后才可以回答。登录 | 立即注册
了然听雨
主管

了然听雨

注册时间:2015-06-08
最后登录:2016-04-21
在线时长:12小时34分
  • 粉丝5
  • 金钱435
  • 威望0
  • 积分555

热门问题