Aller au contenu principal

🔐 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

important

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 token et l'objet accounts.

  • 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.

  1. Générer un UUIDv4 unique pour l'appareil (à stocker pour réutiliser à chaque rafraßchissement).

  2. Premier Login : Envoyer le login avec "sesouvenirdemoi": true et votre uuid.

  3. Récupérer l' access_token dans l'objet utilisateur.

  4. Renouvellement : Quand le token expire, envoyez :

        {
"identifiant": "Username",
"uuid": "VOTRE_UUID",
"isReLogin": true,
"typeCompte": "E",
"accesstoken": "VOTRE_ACCESS_TOKEN"
}