/** * Attempts to authenticate a TokenInterface object. * * @param TokenInterface $token The TokenInterface instance to authenticate * * @throws TokenBlockedHttpException * @throws TokenExpiredHttpException * @throws UserNotFoundHttpException * @return TokenInterface An authenticated TokenInterface instance, never null */ public function authenticate(TokenInterface $token) { $accessToken = $token->getAccessToken(); $accessTokenEntity = $this->accessTokenRepository->findOneByCode($accessToken); if (is_null($accessTokenEntity) || $accessTokenEntity->isBlocked()) { throw new TokenBlockedHttpException(); } if ($accessTokenEntity->isExpired()) { throw new TokenExpiredHttpException(); } $authenticatedToken = OAuth2Token::createFromAccessTokenEntity($accessTokenEntity); return $authenticatedToken; }