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