feat : jwt

This commit is contained in:
2025-09-15 09:32:15 +08:00
parent 1d01ecfdcb
commit 8665b27294
3 changed files with 42 additions and 38 deletions

View File

@@ -88,7 +88,6 @@ abstract class AbstractJwt implements JwtInterface
*/ */
public function parserAccessToken(string $accessToken): UnencryptedToken public function parserAccessToken(string $accessToken): UnencryptedToken
{ {
try {
return $this->getJwtFacade() return $this->getJwtFacade()
->parse( ->parse(
$accessToken, $accessToken,
@@ -103,9 +102,6 @@ abstract class AbstractJwt implements JwtInterface
$this->getBlackListConstraint(), $this->getBlackListConstraint(),
$this->refreshTokenConstraint $this->refreshTokenConstraint
); );
} catch (RequiredConstraintsViolated $e) {
throw new ErrException('token过期',ResultCode::JWT_EXPIRED,['err_msg' => $e->getMessage()]);
}
} }
/** /**
@@ -114,7 +110,6 @@ abstract class AbstractJwt implements JwtInterface
*/ */
public function parserRefreshToken(string $refreshToken): UnencryptedToken public function parserRefreshToken(string $refreshToken): UnencryptedToken
{ {
try {
return $this->getJwtFacade() return $this->getJwtFacade()
->parse( ->parse(
$refreshToken, $refreshToken,
@@ -129,9 +124,6 @@ abstract class AbstractJwt implements JwtInterface
$this->getBlackListConstraint(), $this->getBlackListConstraint(),
$this->accessTokenConstraint $this->accessTokenConstraint
); );
}catch (RequiredConstraintsViolated $e) {
throw new ErrException('refresh_token过期',ResultCode::JWT_EXPIRED,['err_msg' => $e->getMessage()]);
}
} }
/** /**

View File

@@ -4,6 +4,8 @@ declare(strict_types=1);
namespace App\Middleware\Token; namespace App\Middleware\Token;
use App\Constants\ResultCode;
use App\Exception\ErrException;
use App\Interface\CheckTokenInterface; use App\Interface\CheckTokenInterface;
use App\Interface\JwtInterface; use App\Interface\JwtInterface;
use App\Lib\Jwt\JwtFactory; use App\Lib\Jwt\JwtFactory;
@@ -11,6 +13,7 @@ use Hyperf\Collection\Arr;
use Hyperf\Stringable\Str; use Hyperf\Stringable\Str;
use Lcobucci\JWT\Token; use Lcobucci\JWT\Token;
use Lcobucci\JWT\UnencryptedToken; use Lcobucci\JWT\UnencryptedToken;
use Lcobucci\JWT\Validation\RequiredConstraintsViolated;
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
@@ -57,7 +60,11 @@ abstract class AbstractTokenMiddleware
*/ */
protected function parserToken(ServerRequestInterface $request): Token protected function parserToken(ServerRequestInterface $request): Token
{ {
try {
return $this->getJwt()->parserAccessToken($this->getToken($request)); return $this->getJwt()->parserAccessToken($this->getToken($request));
} catch (RequiredConstraintsViolated $e) {
throw new ErrException('token过期',ResultCode::JWT_EXPIRED,['err_msg' => $e->getMessage()]);
}
} }
/** /**

View File

@@ -9,6 +9,7 @@ use App\Exception\ErrException;
use App\Interface\JwtInterface; use App\Interface\JwtInterface;
use Lcobucci\JWT\Token\RegisteredClaims; use Lcobucci\JWT\Token\RegisteredClaims;
use Lcobucci\JWT\UnencryptedToken; use Lcobucci\JWT\UnencryptedToken;
use Lcobucci\JWT\Validation\RequiredConstraintsViolated;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Server\RequestHandlerInterface;
@@ -49,7 +50,11 @@ class RefreshAdminTokenMiddleware extends AbstractTokenMiddleware
*/ */
protected function parserToken(ServerRequestInterface $request): UnencryptedToken protected function parserToken(ServerRequestInterface $request): UnencryptedToken
{ {
try {
return $this->getJwt()->parserRefreshToken($this->getToken($request)); return $this->getJwt()->parserRefreshToken($this->getToken($request));
} catch (RequiredConstraintsViolated $e) {
throw new ErrException('token过期',ResultCode::JWT_EXPIRED,['err_msg' => $e->getMessage()]);
}
} }
/** /**