# TrackMania (2020) OAuth2 authentication module ## How to install it Add this in your composer.json file: ```json "repositories": [ { "url": "https://git.virtit.fr/beu/oauth2-trackmania.git", "type": "git" } ], ``` change the value of `minimum-stability` to dev in it. then launch the command: ```bash composer require beu/oauth2-trackmania ``` ## How to configure it Install the security bundle: ```bash composer require symfony/security-bundle ``` Then create the User Entity ```bash php bin/console make:user ``` Note that you have to answer **no** to the question `Does this app need to hash/check user passwords?` Then, you could copy the files `TrackMania.php` in `src/Controller/OAuth2/` and `TrackManiaAuthenticator.php` in `src/Security/` Then change the `config/packages/knpu_oauth2_client.yaml` file like this: ```yaml knpu_oauth2_client: clients: TrackMania: type: generic provider_class: \Beu\TrackMania\OAuth2\Client\Provider\TrackManiaProvider client_id: '%env(OAUTH2_TRACKMANIA_CLIENTID)%' client_secret: '%env(OAUTH2_TRACKMANIA_SECRET)%' redirect_route: connect_trackmania_check redirect_params: {} ``` and in the `config/packages/security.yaml` file, in the security -> firewalls -> main part: remove the property `provider` and add these lines: ```yaml custom_authenticators: - App\Security\TrackManiaAuthenticator logout: path: app_logout ``` After that, you will need to get the Client ID and the Secret on https://api.trackmania.com/ and add them in your `.env` file like this: ``` OAUTH2_TRACKMANIA_CLIENTID=XXXXXXXXXXXXXXXXXXX OAUTH2_TRACKMANIA_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ```