Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
GoogleController
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 connect
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
 connectCheck
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace App\Controller\Security;
6
7use KnpU\OAuth2ClientBundle\Client\ClientRegistry;
8use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
9use Symfony\Component\HttpFoundation\RedirectResponse;
10use Symfony\Component\Routing\Attribute\Route;
11
12class GoogleController extends AbstractController
13{
14    public function __construct(private readonly ClientRegistry $clientRegistry) {}
15
16    /**
17     * Link to this controller to start the "connect" process.
18     */
19    #[Route(path: '/connect/google', name: 'connect_google_start', methods: ['GET'])]
20    public function connect(): RedirectResponse
21    {
22        return $this->clientRegistry
23            ->getClient('google')
24            ->redirect(
25                [
26                    'profile',
27                    'email', // the scopes you want to access
28                ],
29                []
30            );
31    }
32
33    /**
34     * After going to Google, you're redirected back here
35     * because this is the "redirect_route" you configured
36     * in config/packages/knpu_oauth2_client.yaml.
37     */
38    #[Route(path: '/connect/google/check', name: 'connect_google_check', methods: ['GET'])]
39    public function connectCheck(): RedirectResponse
40    {
41        return $this->redirectToRoute('default');
42    }
43}