Модульный тест с токеном 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 для тестовой среды, но я думаю, что это не лучшая практика для теста.

Любые предложения / комментарии / репо будут оценены

0 ответов

Другие вопросы по тегам