oauth2-trackmania/README.md
2023-02-16 15:12:11 +01:00

1.7 KiB

TrackMania (2020) OAuth2 authentication module

How to install it

Add this in your composer.json file:

"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:

composer require beu/oauth2-trackmania

How to configure it

Install the security bundle:

composer require symfony/security-bundle

Then create the User Entity

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:

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:

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