74 lines
1.7 KiB
Markdown
74 lines
1.7 KiB
Markdown
# 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
|
|
``` |