如何为 Cakephp 3 PHPunit 测试创建 CSRF 令牌?
How to create CSRF token for Cakephp 3 PHPunit testing?
在我的 CakePHP 3 应用程序中启用 CSRF 令牌和 SSL 后,我试图让我的单元测试再次工作。
如何为如下测试创建或生成令牌?或者我只是为了测试目的而禁用它?
public function testLogin() {
$this->get('/login');
$this->assertResponseOk();
$data = [
'email' => 'info@example.com',
'password' => 'secret'
];
$this->post('/login', $data);
$this->assertResponseSuccess();
$this->assertRedirect(['controller' => 'Users', 'action' => 'dashboard']);
}
官方文档has good approach since version 3.1.2.
您只需在 post 之前调用 $this->enableCsrfToken();
and/or $this->enableSecurityToken();
即可使用令牌成功执行请求。
如官方示例所示:
public function testAdd()
{
$this->enableCsrfToken();
$this->enableSecurityToken();
$this->post('/posts/add', ['title' => 'Exciting news!']);
}
在我的 CakePHP 3 应用程序中启用 CSRF 令牌和 SSL 后,我试图让我的单元测试再次工作。
如何为如下测试创建或生成令牌?或者我只是为了测试目的而禁用它?
public function testLogin() {
$this->get('/login');
$this->assertResponseOk();
$data = [
'email' => 'info@example.com',
'password' => 'secret'
];
$this->post('/login', $data);
$this->assertResponseSuccess();
$this->assertRedirect(['controller' => 'Users', 'action' => 'dashboard']);
}
官方文档has good approach since version 3.1.2.
您只需在 post 之前调用 $this->enableCsrfToken();
and/or $this->enableSecurityToken();
即可使用令牌成功执行请求。
如官方示例所示:
public function testAdd()
{
$this->enableCsrfToken();
$this->enableSecurityToken();
$this->post('/posts/add', ['title' => 'Exciting news!']);
}