|
@ -5,6 +5,7 @@ namespace App\Controller; |
|
|
use KnpU\OAuth2ClientBundle\Client\ClientRegistry; |
|
|
use KnpU\OAuth2ClientBundle\Client\ClientRegistry; |
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; |
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; |
|
|
use Symfony\Bundle\SecurityBundle\Security; |
|
|
use Symfony\Bundle\SecurityBundle\Security; |
|
|
|
|
|
use Symfony\Component\HttpFoundation\RedirectResponse; |
|
|
use Symfony\Component\HttpFoundation\Request; |
|
|
use Symfony\Component\HttpFoundation\Request; |
|
|
use Symfony\Component\HttpFoundation\Response; |
|
|
use Symfony\Component\HttpFoundation\Response; |
|
|
use Symfony\Component\Routing\Attribute\Route; |
|
|
use Symfony\Component\Routing\Attribute\Route; |
|
@ -35,8 +36,14 @@ class HomeController extends AbstractController |
|
|
|
|
|
|
|
|
// L’oauth OSM commence ici
|
|
|
// L’oauth OSM commence ici
|
|
|
#[Route('/osm/request', name: 'app_osm_request')]
|
|
|
#[Route('/osm/request', name: 'app_osm_request')]
|
|
|
public function osmRequest(ClientRegistry $clientRegistry): Response |
|
|
|
|
|
|
|
|
public function osmRequest(Request $request, ClientRegistry $clientRegistry): Response |
|
|
{ |
|
|
{ |
|
|
|
|
|
// Se souvient d’où l’on vient pour pouvoir y retourner après la connexion
|
|
|
|
|
|
if ($request->headers->has('Referer')) { |
|
|
|
|
|
$session = $request->getSession(); |
|
|
|
|
|
$session->set('referer', $request->headers->get('Referer')); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return $clientRegistry |
|
|
return $clientRegistry |
|
|
->getClient('openstreetmap') // cf `config/packages/knpu_oauth2_client.yaml`
|
|
|
->getClient('openstreetmap') // cf `config/packages/knpu_oauth2_client.yaml`
|
|
|
->redirect([ |
|
|
->redirect([ |
|
@ -59,12 +66,13 @@ class HomeController extends AbstractController |
|
|
$this->addFlash('success', 'Authentification OSM réussie !'); |
|
|
$this->addFlash('success', 'Authentification OSM réussie !'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return $this->redirectToRoute('app_home'); |
|
|
|
|
|
|
|
|
$session = $request->getSession(); |
|
|
|
|
|
return $session->has('referer') ? new RedirectResponse($session->get('referer'), Response::HTTP_TEMPORARY_REDIRECT) : $this->redirectToRoute('app_home'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// La déconnexion passe par là mais c’est pas lié à l’oauth
|
|
|
// La déconnexion passe par là mais c’est pas lié à l’oauth
|
|
|
#[Route('/osm/logout', name: 'app_osm_logout')]
|
|
|
#[Route('/osm/logout', name: 'app_osm_logout')]
|
|
|
public function osmLogout(Security $security): Response |
|
|
|
|
|
|
|
|
public function osmLogout(Request $request, Security $security): Response |
|
|
{ |
|
|
{ |
|
|
return $security->logout(); |
|
|
return $security->logout(); |
|
|
} |
|
|
} |
|
|