Différences entre versions de « Génération de la signature »

De Ikoula Wiki
Jump to navigation Jump to search
Ligne 1 : Ligne 1 :
 +
<span data-link_translate_he_title="הדור חתימה"  data-link_translate_he_url="%D7%94%D7%93%D7%95%D7%A8+%D7%97%D7%AA%D7%99%D7%9E%D7%94"></span>[[:he:הדור חתימה]][[he:הדור חתימה]]
 
<span data-link_translate_ro_title="Generația semnături"  data-link_translate_ro_url="Genera%C8%9Bia+semn%C4%83turi"></span>[[:ro:Generația semnături]][[ro:Generația semnături]]
 
<span data-link_translate_ro_title="Generația semnături"  data-link_translate_ro_url="Genera%C8%9Bia+semn%C4%83turi"></span>[[:ro:Generația semnături]][[ro:Generația semnături]]
 
<span data-link_translate_ru_title="Создание подписи"  data-link_translate_ru_url="%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B8"></span>[[:ru:Создание подписи]][[ru:Создание подписи]]
 
<span data-link_translate_ru_title="Создание подписи"  data-link_translate_ru_url="%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%B8"></span>[[:ru:Создание подписи]][[ru:Создание подписи]]

Version du 24 novembre 2015 à 15:34

he:הדור חתימה ro:Generația semnături ru:Создание подписи pl:Generowanie podpisu ja:署名の生成 ar:توليد التوقيع zh:签名生成 de:Die Signatur-generation nl:De handtekening generatie it:La generazione della firma pt:A geração de assinatura es:La generación de una firma en:The signature generation


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



Vous n'êtes pas autorisé à publier de commentaire.