fix : jwt

This commit is contained in:
2025-09-13 12:16:13 +08:00
parent a1fdeb9148
commit 48ad2ebd1b
9 changed files with 135 additions and 18 deletions

View File

@@ -10,18 +10,43 @@ declare(strict_types=1);
namespace App\Service\Admin\Login;
use App\Lib\Jwt\RequestScopedTokenTrait;
use App\Service\Admin\BaseAdminService;
use App\Service\BaseTokenService;
use Hyperf\Di\Annotation\Inject;
use Lcobucci\JWT\Token\RegisteredClaims;
use Lcobucci\JWT\UnencryptedToken;
class RefreshService extends BaseAdminService
{
use RequestScopedTokenTrait;
/**
* @var BaseTokenService
*/
#[Inject]
protected BaseTokenService $tokenService;
/**
* @return array
*/
public function handle(): array
{
return $this->adminReturn->success();
return $this->adminReturn->success('success',$this->refreshToken($this->getToken()));
}
public function refreshToken(UnencryptedToken $token)
/**
* @param UnencryptedToken $token
* @return array<string,int|string>
*/
public function refreshToken(UnencryptedToken $token): array
{
$jwt = $this->tokenService->setJwt('admin')->getJwt();
$jwt->addBlackList($token);
return [
'access_token' => $jwt->builderAccessToken($token->claims()->get(RegisteredClaims::ID))->toString(),
'refresh_token' => $jwt->builderRefreshToken($token->claims()->get(RegisteredClaims::ID))->toString(),
'expire_at' => (int) $jwt->getConfig('ttl', 0),
];
}
}