Authentification¶
L'authentification pour les appels à l'API se font grâce à l'obtention préalable d'un token JWT
.
Ces tokens ont une durée de vie de 24 heures, cela signifie qu'il est nécessaire d'obtenir un nouveau token régulièrement.
Obtenir un token JWT¶
Vous pouvez obtenir un nouveau token JWT
en faisant un POST
sur l'url /api/account/token/
.
Note
Nouveau en version 2.1 : l'email est insensible à la casse.
Requête :
POST /api/account/token/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"email": "email@domain.com",
"password": "xxxxxxxxxx",
}
Réponse :
HTTP/1.1 200 OK
Content-Type: application/json
{
"token": "eyJhbGciOiJIUzIInR5cCI6I.48rgjeijw2qef24o3du2eufonefwe",
"user": {
"date_joined": "2017-11-22T10:04:13Z",
"last_login": "2019-03-19T06:54:08Z",
"user_uuid": "ut8rie3",
"operator_name": "Stella",
"language": "fr",
"fullname": "Renarin Kholin",
"first_name": "Renarin",
"last_name": "Kholin",
"cell_phone_number": "0606060606",
"email": "ren.kh@palace.ak",
"groups": [
11
],
"operator_uuid": "9jxt7k2r"
}
}
En cas d'identifiants invalides, l'API renvoie un code HTTP 400.
Utilisation du token JWT¶
Avertissement
Initialement, le token pouvait être fourni à chaque requête via un paramètre query string. Ce comportement est déprécié et sera prochainement désactivé pour des raisons de sécurité. Vous êtes invités à migrer vers l'authentification par entête HTTP.
Le token, une fois récupéré, doit être fourni à chaque requête via le header Authorization JWT <TOKEN>
.
Requête :
GET /api/users/ut8rie3/ HTTP/1.1
Authorization: JWT eyJhbGciOiJIUzIInR5cCI6I.48rgjeijw2qef24o3du2eufonefwe
Host: extranet.kosc-telecom.fr
Réponse :
HTTP/1.1 200 OK
Content-Type: application/json
{
"date_joined": "2017-11-22T10:04:13Z",
"last_login": "2019-03-19T06:54:08Z",
"user_uuid": "ut8rie3",
"operator_name": "Stella",
"language": "fr",
"fullname": "Renarin Kholin",
"first_name": "Renarin",
"last_name": "Kholin",
"cell_phone_number": "0606060606",
"email": "ren.kh@palace.ak",
"groups": [
11
],
"operator_uuid": "9jxt7k2r"
}
Rafraîchissement du token JWT¶
Tant que le token n'est pas expiré, on peut le rafraichir en faisant un POST
sur l'url /api/account/token/refresh/
.
Note
Le rafraichissement par token peut être répété (token 1 > token 2 > token 3). Un token peut être rafraîchi pendant 7 jours après l'obtention du premier.
Requête :
POST /api/account/token/refresh/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"token": "eyJhbGciOiJIUzIInR5cCI6I.48rgjeijw2qef24o3du2eufonefwe"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"token": "eyJhbGciOiJIUzIInR5cCI6I.48rgjeijw2qef24o3du2eufonefwenew",
"user": {
"date_joined": "2017-11-22T10:04:13Z",
"last_login": "2019-03-19T06:54:08Z",
"user_uuid": "ut8rie3",
"operator_name": "Stella",
"language": "fr",
"fullname": "Renarin Kholin",
"first_name": "Renarin",
"last_name": "Kholin",
"cell_phone_number": "0606060606",
"email": "ren.kh@palace.ak",
"groups": [
11
],
"operator_uuid": "9jxt7k2r"
}
}
Vérifier la validité du token¶
On peut vérifier la validité du token en faisant un POST
sur l'url /api/account/token/verify/
Requête :
POST /api/account/token/refresh/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"token": "eyJhbGciOiJIUzIInR5cCI6I.48rgjeijw2qef24o3du2eufonefwe"
}
Si le token est toujours valide, l'API renvoie une réponse 200 :
HTTP/1.1 200 OK
Content-Type: application/json
Si le token n'est plus valide, l'API renvoie une réponse 400 :
HTTP/1.1 400 OK
Content-Type: application/json