Skip to content

Commit 4cbeedb

Browse files
Changes per feedback
1 parent cbcf04c commit 4cbeedb

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

src/ApiBundle/Controller/AuthController.php

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -551,14 +551,33 @@ public function invalidateAction()
551551
$this->logAndThrowError(400, 'Invalid/Missing Access Token', $this->get('translator')->trans('api.show_error_username_missing', array(), 'messages', $request->getLocale()), $request->getLocale());
552552
}
553553

554+
// Fetch Access Token
554555
$token = $this->container->get('security.context')->getToken()->getToken();
555556

557+
// Fetch Client Id
558+
$em = $this->getDoctrine()->getManager();
559+
$connection = $em->getConnection();
560+
$statement = $connection->prepare("SELECT client_id FROM oauth2_access_tokens WHERE user_id = :id AND token = :token");
561+
$statement->bindValue('id', $user->getId());
562+
$statement->bindValue('token', $token);
563+
$statement->execute();
564+
$results = $statement->fetchAll();
565+
$clientId = $results[0]['client_id'];
566+
567+
// Delete Access Token
556568
$accessTokenManager = $this->container->get('fos_oauth_server.access_token_manager.default');
557569
$accessToken = $accessTokenManager->findTokenBy(array('token' => $token));
558-
$accessToken->setExpiresAt($accessToken->getExpiresAt() - (86400 * 30));
559-
$accessTokenManager->updateToken($accessToken);
570+
$accessTokenManager->deleteToken($accessToken);
560571

561-
$this->logMessage(200, 'Token '.$token.' Invalidated for '.$user->getUsername());
572+
// Delete Refresh Token
573+
$em = $this->getDoctrine()->getManager();
574+
$connection = $em->getConnection();
575+
$statement = $connection->prepare("DELETE FROM oauth2_refresh_tokens WHERE user_id = :id AND client_id = :client");
576+
$statement->bindValue('id', $user->getId());
577+
$statement->bindValue('client', $clientId);
578+
$results = $statement->execute();
579+
580+
$this->logMessage(200, 'Token '.$token.' Invalidated for '.$user->getUsername().' '.$results);
562581

563582
return new JsonResponse(array(
564583
'code' => 201,

0 commit comments

Comments
 (0)