SSO #1

Merged
Charles-Edouard merged 23 commits from SSO into main 2025-07-29 16:46:46 +02:00
1 changed files with 7 additions and 27 deletions
Showing only changes of commit 08024b301b - Show all commits

View File

@ -5,10 +5,8 @@ namespace App\Controller;
use App\Service\AccessTokenService;
use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
use SessionHandlerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Bundle\SecurityBundle\Security;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
@ -45,37 +43,20 @@ class SecurityController extends AbstractController
#[Route(path: '/sso_logout', name: 'sso_logout')]
public function ssoLogout(RequestStack $stack, LoggerInterface $logger, AccessTokenService $accessTokenService, Security $security): Response
{
// Invalidate the session and revoke tokens
try{
if( $stack->getSession()->invalidate()){
$accessTokenService->revokeTokens($security->getUser()->getUserIdentifier());
$security->logout(false);
$logger->info("Session invalidated successfully");
} else {
$logger->info("Session already invalidated or not started");
$logger->info("Logout successfully");
// Redirect back to the client (or to a “you are logged out” page)
return $this->redirect('/');
}
}catch (\Exception $e){
$logger->log(LogLevel::ERROR, 'Error invalidating session: ' . $e->getMessage());
}
// try{
// $security->logout(false);
// }catch (\Exception $e){
// $logger->log(LogLevel::ERROR, 'Error during logout: ' . $e->getMessage());
// }
// $security->logout(false);
// try{
// $logger->info("Destruction de la session");
// $sessionHandler->destroy("089gn04mts0iiiskfji8sjqr15");
// }catch(\Exception $e){
// // Log the error if needed
// $logger->error("Erreur lors de la destruction de la session". $e->getMessage());
// }
$logger->info("Logout successfully");
// Redirect back to the client (or to a “you are logged out” page)
// $redirect = $request->query->get('redirect_uri', '/');
return $this->redirect('/');
// return new JsonResponse(["SUCCESS" => "Tokens revoked successfully"], Response::HTTP_OK);
// If something goes wrong, redirect to the index page
return $this->redirectToRoute('app_index');
}
#[Route(path: '/consent', name: 'app_consent')]
@ -97,5 +78,4 @@ class SecurityController extends AbstractController
return $this->render('security/consent.html.twig');
}
}
}