【发布时间】:2022-02-16 02:16:12
【问题描述】:
异常TokenBlacklistedException 不起作用
我正在使用 Laravel 8,我正在尝试使用 Exception: TokenBlacklistedException 和 TokenExpiredException 但它不起作用。返回以下错误:
Tymon\JWTAuth\Exceptions\TokenBlacklistedException: The token has been blacklisted in file C:\Users\taha\Desktop\API-LARAVEL-8\Laravel-VUEJS\mynew-app\vendor\tymon\jwt-auth\src\Manager.php on line 109
#0 C:\Users\taha\Desktop\API-LARAVEL-8\Laravel-VUEJS\mynew-app\vendor\tymon\jwt-auth\src\Manager.php(128): Tymon\JWTAuth\Manager->decode(Object(Tymon\JWTAuth\Token))
#1 C:\Users\taha\Desktop\API-LARAVEL-8\Laravel-VUEJS\mynew-app\vendor\tymon\jwt-auth\src\JWT.php(106): Tymon\JWTAuth\Manager->refresh(Object(Tymon\JWTAuth\Token), false, false)
#2 C:\Users\taha\Desktop\API-LARAVEL-8\Laravel-VUEJS\mynew-app\app\Http\Middleware\JwtRefreshToken.php(44): Tymon\JWTAuth\JWT->refresh()
ion\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Clo...
<?php
namespace App\Http\Middleware;
use Closure;
//use Exception;
use Illuminate\Http\Request;
use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\Exceptions\TokenExpiredException;
use Tymon\JWTAuth\Exceptions\TokenInvalidException;
use Tymon\JWTAuth\Exceptions\TokenBlacklistedException;
//use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
//use Symfony\Component\Debug\Exception\FatalErrorException;
use Tymon\JWTAuth\Facades\JWTAuth;
class JwtRefreshToken
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
//dd('Taha Suliman Ramadan');
try {
if (! $user = JWTAuth::parseToken()->authenticate()) {
return response()->json(['user_not_found'], 404);
}
} catch (TokenBlacklistedException $e) {
return response()->json(['token_expired'], status: 401);
}catch (TokenExpiredException $e) {
$newToken = JWTAuth::parseToken()->refresh();
return response()->json(['success'=>false,'token'=> $newToken,'message'=>'Token Expired (So Refreshed)...'], status:200);
} catch (TokenInvalidException $e) {
return response()->json(['token_invalid'], status: 401);
} catch (JWTException $e) {
return response()->json(['token_absent'], status: 401);
}
//---------------------------------
return $next($request);
}
}
如果你们之前遇到过这样的问题,请帮忙
【问题讨论】:
标签: php laravel exception jwt laravel-8