oauth2-trackmania/README.md

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
```