Contrôle d'identification par OpenFlyers pour un logiciel tiers

Révision de 2 décembre 2016 à 15:39 par Bbarbe (discuter | contributions) (Plugin d'authentification Joomla)

Aller à : navigation, rechercher

Présentation

Cette page explique comment vérifier qu'un couple identifiant/mot de passe envoyé, par vos propres scripts, est conforme à la base de données d'OpenFlyers.

Comment ça marche

Si votre plateforme OpenFlyers se situe sur le lien http://openflyers.com/nom-plateforme/, envoyez simplement une requête POST sur le lien http://openflyers.com/nom-plateforme/checkIdent.php avec comme paramètres les variables login et rawPassword.

Attention: Les versions 2 d'OpenFlyers ou plus nécessitent un mot de passe chiffré en MD5 (cf. la ligne $postData commentée ci-dessous, dans le script PHP).

Valeurs de retour possibles

Le script retourne un chiffre parmi les suivant :

  • 0: OK
  • 1: OK mais plusieurs profils disponibles. OpenFlyers sélectionne automatiquement le meilleur profil.
  • 2: Expiré mais autorisé
  • 3: Expiré mais autorisé, avec un profil expiré
  • 4: Abonnement expiré, refusé
  • 5: Mauvais identifiants, refusé
  • 6: IP ou identifiants bloqués, refusé
  • 7: Aucun identifiant donné, ils sont demandés

Nous vous recommandons de considérer un code de retour entre 0 et 2 comme bon et mauvais entre 3 et 7.

Attention: Vous devez filtrer les identifiants de connexion libres (sans droits) puisque pour OpenFlyers, ils correspondent à des accès autorisés !!!

JavaScript

Si vous utilisez votre propre formulaire d'authentification, utilisez la fonction javascript submit_pwd() située dans \javascript\submitPwd.js .

Exemple de code PHP

Voici un exemple de code PHP permettant d'envoyer une requête POST :

function httpPostRequest($host, $path, $postData) { 
  $result= ""; 
 
  $request = "POST $path HTTP/1.1\n". 
  "Host: $host\n". 
  (isset($referer) ? "Referer: $referer\n" : ""). 
  "Content-type: Application/x-www-form-urlencoded\n".
  "Content-length: ".strlen($postData)."\n". 
  "Connection: close\n\n". 
  $postData."\n"; 
 
  // Some debug informations:
  // print("<pre>Request:\n".htmlentities($request)."</pre>"); 
 
  if ($fp = fsockopen($host, 80, $errno, $errstr, 3))
  // for PHP release < 5.3.0, use the following syntax:
  // if ($fp = fsockopen($host, 80, &$errno, &$errstr, 3))
    { 
    if (fputs($fp, $request)) 
    { 
      while(! feof($fp)) 
      { 
       $result.= fgets($fp, 128); 
      } 
      fclose($fp); 
//      print($result);
      return $result; 
    } 
  } 
}
 
//$postData='login=jbond&rawPassword='.md5('007'); // for OpenFlyers release 2 or higher
$postData='login=jbond&rawPassword=007';
$rawContent = httpPostRequest('openflyers.com','http://openflyers.com/plateform-name/checkIdent.php',$postData); [^]
 
list($header, $content) = explode("\r\n\r\n", $rawContent, 2);
list($byteQty, $realContent, $dummy) = explode("\r\n", $content, 3);
 
// the answer is in $realContent

Plugin d'authentification Joomla

Si vous avez un site Joomla et que vous désirer de permettre aux utilisateurs OpenFlyers de se connecter à votre espace restreint Joomla, vous devriez ajouter ce plugin de manière à avoir une unique base de données de comptes utilisateurs : celle d'OpenFlyers.

Vous n'avez pas besoin de mettre à jour votre base de données Joomla, ce plugin interroge directement OpenFlyers grâce au script PHP CheckIdent.php.