Oauth2 TrackMania 2020 provider for league/oauth2-client (experimental)
Go to file
2024-07-31 11:47:14 +02:00
examples add support of refresh token 2024-07-31 11:36:15 +02:00
src/Provider Initial commit 2022-06-23 09:37:52 +02:00
composer.json fix homepage https 2024-07-31 11:47:14 +02:00
README.md add support of refresh token 2024-07-31 11:36:15 +02:00

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/, TrackManiaAuthenticator.php in src/Security/ and TrackManiaAuthenticatorSubscriber.php in src/Event/.

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