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.
Page modifiable par Etudiant
Page visible par Etudiant et Exterieur