4.2.2 - Accéder aux données publiques seules : client_credentials - Site étudiant de l'UTT

Logo du site Wiki UTT

4.2.2 - Accéder aux données publiques seules : client_credentials

Si vous n’avez besoin d’accéder qu’aux données publiques mises à disposition par l’API, vous n’avez pas besoin de demander d’accès à l’utilisateur, car les données sensibles ne vous intéresse pas. Vous pouvez donc utiliser le type d’authentification appelé client_credentials.

Ce type d’authentification utilise les identifiants fournit par EtuUTT à votre client (le client ID et le client secret) pour créer un accès ne possédant que le scope public.

Ce type d’authentification est idéal pour commencer car il est très simple. Par exemple, pour obtenir un token d’accès avec , en PHP avec Guzzle :

$client = new Client([
    'base_url' => 'https://etu.utt.fr/',
    'defaults' => [
        'auth' => ['<client_id>', '<client_secret>']
    ]
]);

$response = $client->post('/api/oauth/token', [ 'body' => [
    'grant_type' => 'client_credentials',
]]);

var_dump($response->json());

Vous obtenez alors quelque chose ressemblant à :

{
    "access_token": "4b8f0f6dccf3ccd998ae090f7f9afc37083667b7",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": "private_user_account private_user_schedule private_user_organizations public"
}

Comme vous le comprenez probablement, vous avez dans ce résultat :

  • un token d’accès : 4b8f0f6dccf3ccd998ae090f7f9afc37083667b7. C’est ce token qu’il faudra garder pour effectuer de multiples requêtes avec son autorisation
  • la date d’expiration du token d’accès, ici dans 1 heure (3600 secondes)
  • un type de token (Bearer) qui ne vous intéresse pas (cela correspond à la confiance accordée au cient par EtuUTT)
  • Une liste de scopes qui ont été donnés au token : ici, vous pouvez donc accéder aux données publiques (vous avez le scope public)

Vous vous demandez probablement pourquoi vous avec les scopes private_user_account, private_user_schedule, private_user_organizations alors que je vous ait dit que vous ne pouriez accéder qu’aux donnée publiques de l’API.

Et bien l’idée est simple : si vous utilisez le type client_credentials, vous povuez automatiquement accéder aux données de l’utilisateur gérant l’application comme si vous étiez connecté. Cela signifie donc que vous pouvez accéder à vos propres données si vous avez créé ce client.


Dernière modification par Aurelien LABATE : 04/10/17 23:37
Page modifiable par Etudiant
Page visible par Etudiant et Exterieur