Différences entre versions de « Génération de la signature »
Jump to navigation
Jump to search
m |
|||
(2 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | <span data-link_translate_en_title="The signature generation" data-link_translate_en_url="The+signature+generation"></span>[[:en:The signature generation]][[en:The signature generation]] | ||
<!-- Début de l'article. Placez votre texte ci-après et n'hésitez pas à personnaliser les chapitres selon votre besoin --> | <!-- Début de l'article. Placez votre texte ci-après et n'hésitez pas à personnaliser les chapitres selon votre besoin --> | ||
− | ==Introduction== | + | |
+ | |||
+ | ==Introduction== <!--T:1--> | ||
Lors d'un appel à l'API, comme indiqué dans le WIKI de l'authentification, une signature est obligatoire. Elle est générée '''en fonction de l'ensemble des paramètres fournis lors de l'appel'''.<br /> | Lors d'un appel à l'API, comme indiqué dans le WIKI de l'authentification, une signature est obligatoire. Elle est générée '''en fonction de l'ensemble des paramètres fournis lors de l'appel'''.<br /> | ||
Pour des raisons techniques, les paramètres d'authentification doivent ''pour l'instant'' toujours être transmises via la méthode HTTP GET | Pour des raisons techniques, les paramètres d'authentification doivent ''pour l'instant'' toujours être transmises via la méthode HTTP GET | ||
− | ==Exemple== | + | ==Exemple== <!--T:2--> |
+ | <!--T:3--> | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
// Définition des paramètres | // Définition des paramètres | ||
Ligne 40 : | Ligne 44 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ==Conclusion== | + | ==Conclusion== <!--T:4--> |
Une fois la signature générée, il faut la passer en paramètre (en plus de tous les autres paramètres) à l'appel API.<br /> | Une fois la signature générée, il faut la passer en paramètre (en plus de tous les autres paramètres) à l'appel API.<br /> | ||
En suivant l'exemple précédent, les paramètres à passer auraient donc été :<br /> | En suivant l'exemple précédent, les paramètres à passer auraient donc été :<br /> | ||
Ligne 47 : | Ligne 51 : | ||
* signature = $signature | * signature = $signature | ||
+ | <!--T:5--> | ||
<!-- Fin de l'article --> | <!-- Fin de l'article --> | ||
<br /><br /> | <br /><br /> | ||
Ligne 53 : | Ligne 58 : | ||
[[Catégorie:API]] | [[Catégorie:API]] | ||
+ | <!--T:6--> | ||
<!-- Gestion SEO. Indiquez les informations manquantes --> | <!-- Gestion SEO. Indiquez les informations manquantes --> | ||
− |
Version du 24 septembre 2015 à 09:02
Introduction
Lors d'un appel à l'API, comme indiqué dans le WIKI de l'authentification, une signature est obligatoire. Elle est générée en fonction de l'ensemble des paramètres fournis lors de l'appel.
Pour des raisons techniques, les paramètres d'authentification doivent pour l'instant toujours être transmises via la méthode HTTP GET
Exemple
// Définition des paramètres
$data["login"] = "mail@example.com";
$data["password"] = "dh4=674j_G"; // Mot de passe non chiffré
// D"autres paramètres peuvent êtres ajoutés en fonction de l"appel à l"API
// $data["autre_parametre"] = "valeur";
// $data["autre_parametre_2"] = "valeur_2";
// $data["..."] = "...";
// Triage des paramètres dans l'ordre croissant
ksort($data);
// Encodage des paramètres
$query = http_build_query($data);
// Encodage des signes plus
$query = str_replace("+", "%20", $query);
// Transformation de la chaîne de caractères en minuscule
$query = strtolower($query);
// Clé publique d'Ikoula (cf. lien ci-dessus)
$public_key="MIIBIjAN...";
// Hashage des paramètres
$hash = hash_hmac("SHA1", $query, $public_key, true);
// Encodage en base64, puis encodage en URL selon RFC 3986
$signature = rawurlencode(base64_encode($hash));
// ==> $signature contient alors la signature finale
Conclusion
Une fois la signature générée, il faut la passer en paramètre (en plus de tous les autres paramètres) à l'appel API.
En suivant l'exemple précédent, les paramètres à passer auraient donc été :
- login = "mail@example.com"
- password = "dh4=674j_G"
- signature = $signature
Cet article vous a semblé utile ?
0