đ Authentification
L'authentification sur EcoleDirecte se fait en plusieurs étapes, incluant une gestion de cookie de sécurité (GTK) et potentiellement une double authentification sous forme de QCM à questions personnelles.
1. Initialisation (GTK)â
Il est obligatoire de récupérer un cookie de session nommé GTK avant de tenter un login. Sans ce cookie, l'API renverra systématiquement une erreur d'identifiants.
Endpoint : GET /v3/login.awp?gtk=1&v=4.96.1
Vous devez extraire la valeur du cookie GTK de la rĂ©ponse et la transmettre dans toutes les requĂȘtes de login suivantes via le header X-Gtk.
2. Tentative de Loginâ
Endpoint : POST /v3/login.awp?v=4.96.1
Header : X-Gtk: <cookie gtk>
{
"identifiant": "Username",
"motdepasse": "Password",
"isRelogin": false,
"uuid": "" //UUIDv4 gĂ©nĂ©rĂ© soi-mĂȘme (inutile pour l'instant, voir renouvellement de token)
}
RĂ©ponses possiblesâ
-
Code 200 : SuccÚs, vous récupérez votre
tokenet l'objetaccounts. -
Code 505 : Identifiants incorrects.
-
Code 250 : 2FA requise.
3. Double Authentification (2FA)â
Si vous recevez le code 250, gardez le token temporaire fourni et suivez ces étapes.
Ătape A : RĂ©cupĂ©rer la questionâ
Endpoint : GET /v3/connexion/doubleauth.awp?verbe=get&v=4.96.1
Header : X-Token: <token de l'étape 2> et X-Gtk: <cookie gtk>
Body : {} (Objet vide)
L'API renvoie la question et les propositions encodées en Base64.
Ătape B : RĂ©pondre au QCMâ
Endpoint : POST /v3/connexion/doubleauth.awp?verbe=post&v=4.96.1
Header : X-Token: <token de l'étape 2> et X-Gtk: <cookie gtk>
Body :
{
"choix": "d3JhcERpcmVjdGU=" // Réponse encodée en Base64
}
Ătape C : Validation finaleâ
Une fois le QCM rĂ©ussi, l'API renvoie des objets cn et cv. Vous devez refaire une requĂȘte de Login (Etape 2) en incluant ces paramĂštres :
{
"identifiant": "...",
"motdepasse": "...",
"fa": [{ "cn": "<cn>", "cv": "<cv>" }] //faaah
}
Renouvellement de tokenâ
Technique utilisée par l'application EcoleDirecte pour maintenir la session sans redemander le 2FA.
-
Générer un UUIDv4 unique pour l'appareil (à stocker pour réutiliser à chaque rafraßchissement).
-
Premier Login : Envoyer le login avec
"sesouvenirdemoi": trueet votreuuid. -
Récupérer l'
access_tokendans l'objet utilisateur. -
Renouvellement : Quand le token expire, envoyez :
{
"identifiant": "Username",
"uuid": "VOTRE_UUID",
"isReLogin": true,
"typeCompte": "E",
"accesstoken": "VOTRE_ACCESS_TOKEN"
}