根据Laravel 5.7文档
“运行测试时,将自动禁用CSRF中间件。”
但是我有以下测试
public function testUserLoginSuccesfully()
{
$data = ['email' => 'test@user.com' , 'password' => bcrypt('test12345')];
$csrf = csrf_token();
$response = $this->withHeaders(['_token' => $csrf])
->post('/login',$data);
$response->assertStatus(302)->assertRedirect('/home');
}
为了正常工作,我必须在VerifyCsrfToken.php中禁用csrf保护:
protected $except = [
//
'/login','/register'
];
如果不修改此属性,则会出现http 419错误。我不知道自己缺少什么,或者如何仅禁用csrf进行测试。
谢谢。