如何在 Codeigniter 中禁用某些控制器的 csrf 令牌

Arp*_*kar 2 php codeigniter-3 csrf-token

在我的网络应用程序中,csrf 令牌工作正常。但我想禁用从我的 Android 应用程序进行 API 调用的 API 调用。我正在为我的 API 使用另一种身份验证。请告诉我如何禁用 API 控制器的所有功能的 csrf 令牌。我尝试在控制器中添加访问权限作为标头,但它不起作用。请帮我。

public function __construct() {
    
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow- Methods: POST, GET, PUT, DELETE, OPTIONS');
}
Run Code Online (Sandbox Code Playgroud)

小智 5

由于您想仅在控制器中禁用 CSRF 功能,因此可以通过$this->config->set_item('csrf_protection', false);构造函数方法更改“csrf_protection”的配置值。

另一种最好的方法是在配置文件中添加路径以从 CSRF 检查中排除

$config['csrf_exclude_uris'] = array('api/person/add');
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请查看CI3 CSRF