单元测试返回已过期的JWT令牌[Laravel 5.2]

时间:2016-06-17 10:34:55

标签: php unit-testing laravel-5 jwt

我使用Tymon JWT pkg,问题是它总是作为回应: 令牌已过期。

以下是测试:

public function test_store_games()
    {

           $token = Auth::tokenById(1);

        $response = $this->post(Config::get('settings.api') . 'games', [
            'name' => 'test123',
            'category' => 'test'],['HTTP_Authorization' => 'Bearer ' . $token]);

        $this->assertRequestOk();
    }

Var $token生成toke我测试但它总是过期...任何人都知道什么是问题?

2 个答案:

答案 0 :(得分:1)

如果将其添加到控制器,这会改变什么吗?

function __construct()
    {
        // for testing only, otherwise JWTAuth::parseToken() fails
        if (env('APP_ENV') == 'testing' 
                && array_key_exists("HTTP_AUTHORIZATION", request()->server())) {
            JWTAuth::setRequest(\Route::getCurrentRequest());
        } 
    }

答案 1 :(得分:0)

您可以在jwt.php配置文件中设置到期日期 'ttl'=> 60 。默认情况下,1小时更改它以增加时间。