Модульный тест с токеном CSRF
Как я могу установить csrf_token через [запрос curl]. ( http://fuelphp.com/docs/classes/request/curl.html)
я фильтрую свой токен через
class Controller_Core extends \Controller_Rest
{
public function router($method, $params)
{
$token = \Security::check_token();
$method_type = \Request::main()->get_method();
if ($token || $method_type === 'GET'){
// call the REST router to process the request
return parent::router($method, $params);
}
// validation failed, return a HTTP 401 and a message
$rsp = ['error' => 'Not Authorized'];
$this->response($rsp, 401);
}
}
пытался
/**
* @group Login
*/
class Test_Classes_Controller_Account_LoginTest extends \TestCase {
/**
* @covers Controller_Account_Login::post_index
*/
public function testLoginToken () {
$res = \Request::forge('/api/account/login/security_token.json')
->set_method('GET')
->execute()
->response();
return \Security::fetch_token();
}
/**
* @group Login
* @depends testLoginToken
*/
public function testLoginFailIncoCred ($token) {
$_POST['csrf_token'] = $token;
$curl = \Request::forge(\Uri::create('api/account/login.json'), 'curl')
->set_method('POST')
->set_params(array(
'email' => 'email',
'password' => 'password'
))
->execute()
->response();
var_dump($curl);
}
}
я также пытался положить csrf_token
через заголовочный файл cookie, параметры $_POST и параметры curl, но все равно не повезло
Как я могу сделать запрос, который будет динамически устанавливать / получать csrf_token с сервера?
Я могу отключить безопасность csrf для тестовой среды, но я думаю, что это не лучшая практика для теста.
Любые предложения / комментарии / репо будут оценены