自CakePHP 3.0.4发布以来,我无法再从我的Android应用程序访问我的web服务了!
我在方法_validateToken()中使用CsrfComponent.php()进行了探索,并找到了一个空标记!
等待了解Android方面的操作,我尝试使用doc中解释的以下停用方式:
public function beforeFilter(Event $event)
{
$this->eventManager()->off($this->Csrf);
}
不幸的是,问题仍然存在,无论如何,我发现在我返回令牌的get请求中,csrf令牌不再存在。所以上面的调用似乎做了一些事情,但为什么它不会阻止令牌检查??
如果我没有加载CSRF组件,一切顺利!
所以我很有意思可以帮助我仍然为所有访问启用CSRF组件,并为一些请求提供瞬时禁用它的解决方案,或者更好的是,使用android API传递CSRF令牌和CSRF头的方法22所有现有示例都使用已弃用的函数运行...
答案 0 :(得分:0)
请确保已从 Controllers 控制器以及 config> route.php
中禁用了它在route.php文件中的以下代码行中进行注释:
$routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true
]));
$routes->applyMiddleware('csrf');