From 236ca1a4e465307c2953e634d5f88b5a599bb710 Mon Sep 17 00:00:00 2001 From: imperosol Date: Sat, 4 Apr 2026 19:24:53 +0200 Subject: [PATCH] tweak documentation --- docs/tutorial/api/account-link.md | 29 ++++++++++++++++++++++------- uv.lock | 5 +++-- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/docs/tutorial/api/account-link.md b/docs/tutorial/api/account-link.md index 2a125824..787f540e 100644 --- a/docs/tutorial/api/account-link.md +++ b/docs/tutorial/api/account-link.md @@ -12,7 +12,7 @@ et d'un client d'API (celui auquel est liée votre Deux informations vous sont nécessaires, en plus de votre clef d'API : - l'id du client : vous pouvez l'obtenir soit en le demandant à l'équipe info, - soit en appelant la route `GET /client/me` avec votre clef d'API + soit en appelant la route `GET /api/client/me` avec votre clef d'API renseignée dans le header [X-APIKey](./connect.md#x-apikey) - la clef HMAC du client : vous devez la demander à l'équipe info. @@ -91,16 +91,29 @@ et doit contenir les données décrites dans - `callback_url`(URL) : l'URL que le site AE appellera si l'authentification réussit - `signature`(string) : la signature des données de la requête. + Il s'agit d'une signature par clef HMAC dont le fonctionnement + est détaillé plus bas. Ces données doivent être url-encodées et passées dans les paramètres GET. -!!!tip "URL de retour" +!!!warning "URL de retour" - Notre système n'impose aucune contrainte quant à la manière - de construire votre URL (hormis le fait que ce doit être une URL HTTPS valide), - mais il est tout de même conseillé d'utiliser l'identifiant de votre - utilisateur comme paramètre dans l'URL - (par exemple `GET /callback/{int:user_id}/`). + Les URLs fournies doivent être des URLs HTTP valides. + En outre, elles doivent obligatoirement inclure la barre oblique finale. + + === "URL correcte ✔️" + + `https://exemple.ae.utbm.fr/foo/` + + === "URL incorrecte ❌" + + `https://exemple.ae.utbm.fr/foo` + +!!!tip + + Inclure l'id de votre utilisateur dans l'URL de retour + peut être un bon moyen de l'identifier lors du callback. + Par exemple : `GET /callback/{int:user_id}/`. ???Example @@ -186,6 +199,8 @@ et la signature de l'URL de retour doit être vérifiée. Dans le deux cas, la signature est le digest HMAC-SHA512 des données url-encodées, en utilisant la clef HMAC du client d'API. +L'ordre dans lequel ces données sont placées dans l'encodage URL +doit être strictement le même que celui donné plus haut. ???Example "Signature de l'URL de connexion" diff --git a/uv.lock b/uv.lock index c2ee554c..6ba83911 100644 --- a/uv.lock +++ b/uv.lock @@ -815,10 +815,11 @@ wheels = [ [[package]] name = "griffelib" -version = "2.0.0" +version = "2.0.2" source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/82/74f4a3310cdabfbb10da554c3a672847f1ed33c6f61dd472681ce7f1fe67/griffelib-2.0.2.tar.gz", hash = "sha256:3cf20b3bc470e83763ffbf236e0076b1211bac1bc67de13daf494640f2de707e", size = 166461, upload-time = "2026-03-27T11:34:51.091Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/51/c936033e16d12b627ea334aaaaf42229c37620d0f15593456ab69ab48161/griffelib-2.0.0-py3-none-any.whl", hash = "sha256:01284878c966508b6d6f1dbff9b6fa607bc062d8261c5c7253cb285b06422a7f", size = 142004, upload-time = "2026-02-09T19:09:40.561Z" }, + { url = "https://files.pythonhosted.org/packages/11/8c/c9138d881c79aa0ea9ed83cbd58d5ca75624378b38cee225dcf5c42cc91f/griffelib-2.0.2-py3-none-any.whl", hash = "sha256:925c857658fb1ba40c0772c37acbc2ab650bd794d9c1b9726922e36ea4117ea1", size = 142357, upload-time = "2026-03-27T11:34:46.275Z" }, ] [[package]]