-
Notifications
You must be signed in to change notification settings - Fork 14
Refresh tokens
Thomas Chauchefoin edited this page Mar 29, 2016
·
1 revision
Alors qu'avec client_credentials
vous pouviez demander autant de token que vous vouliez, avec le
authorization_code
vous avez besion de l'approbation de l'utilisateur à chaque fois que vous voulez
un token. Cependant, ces tokens ne durent qu'une heure : vous ne pouvez pas demander à l'utiisateur
d'accepter votre application toutes les heures !
Le refresh_token
est une solution à ce problème : ce token est valide un mois entier et permet de regérérer
des tokens d'accès. Stockez donc le en base de donnée, il est important !
Par exemple, avec le refresh_token ci-dessus :
<?php
$client = new Client([
'base_url' => 'https://etu.utt.fr/',
'defaults' => [
'auth' => ['<client_id>', '<client_secret>']
]
]);
$response = $client->post('/api/oauth/token', [ 'body' => [
'grant_type' => 'refresh_token',
'refresh_token' => 'f7fc59610c2a7fa8365c87b4f93b589e50826618'
]]);
var_dump($response->json());
Nous avons une réponse de la forme :
{
"http": {
"status": 200,
"message": "OK"
},
"response": {
"access_token": "ed7653ce2cfce53ee96efb3ed485ecbcecc83545",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "public",
"refresh_token": "579a9f9f5545f90002916aaebf5d9346070eb7c0"
}
}
Quand vous demandez un token d'accès avec un refresh_token, ce refresh_token est supprimé (il n'est
plus utilisable) et un aute est regénéré, présent dans la réponse, comme ci-dessus. Cest ce nouveau
refresh_token qu'il faudra utiliser.