@@ -551,14 +551,33 @@ public function invalidateAction()
551
551
$ this ->logAndThrowError (400 , 'Invalid/Missing Access Token ' , $ this ->get ('translator ' )->trans ('api.show_error_username_missing ' , array (), 'messages ' , $ request ->getLocale ()), $ request ->getLocale ());
552
552
}
553
553
554
+ // Fetch Access Token
554
555
$ token = $ this ->container ->get ('security.context ' )->getToken ()->getToken ();
555
556
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
556
568
$ accessTokenManager = $ this ->container ->get ('fos_oauth_server.access_token_manager.default ' );
557
569
$ accessToken = $ accessTokenManager ->findTokenBy (array ('token ' => $ token ));
558
- $ accessToken ->setExpiresAt ($ accessToken ->getExpiresAt () - (86400 * 30 ));
559
- $ accessTokenManager ->updateToken ($ accessToken );
570
+ $ accessTokenManager ->deleteToken ($ accessToken );
560
571
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 );
562
581
563
582
return new JsonResponse (array (
564
583
'code ' => 201 ,
0 commit comments