jwtFactory->get($this->jwt); } /** * @param UnencryptedToken $token * @return void */ public function checkJwt(UnencryptedToken $token): void { $this->getJwt()->hasBlackList($token) && throw new ErrException('token已过期'); } /** * @param string $jwt * @return $this */ public function setJwt(string $jwt): self { $this->jwt = $jwt; return $this; } /** * @param UnencryptedToken $token * @return \Closure */ public function refreshToken(UnencryptedToken $token): \Closure { return value(static function (JwtInterface $jwt) use ($token) { $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), ]; }, $this->getJwt()); } }