Я использую версию 1 https://github.com/tymondesigns/jwt-auth.
Мне нужно создать токен с истекшим сроком действия, чтобы проверить TokenExpiredException
в моем коде:
public function handle($request, Closure $next)
{
try {
JWTAuth::parseToken()->authenticate();
} catch (Exception $e) {
if ($e instanceof TokenInvalidException) {
return response()->json(['status' => 'Token is Invalid'], 401);
} elseif ($e instanceof TokenExpiredException) {
return response()->json(['status' => 'Token is Expired'], 401);
} else {
return response()->json(['status' => 'Authorization Token not found'], 401);
}
}
return $next($request);
}
Я не могу это сделать:
public function setUp(): void
{
parent::setUp();
$password = '123456';
$user = new User([
'email' => '[email protected]',
'password' => Hash::make($password),
]);
$user->save();
}
public function testExpiredToken()
{
$user = User::first();
$token = JWTAuth::fromUser($user, ['exp'=> 123456]);
$response = $this->withHeaders([
'Authorization' => 'Bearer '.$token,
])->get(Route('test_data_read_closed'));
$response->assertStatus(401);
}
Но я получаю 200 из своего теста (токен принят, я получил ответ от своего маршрута), а не 401.
Как я могу создать токен с истекшим сроком действия? Спасибо