API OpenFlyers: Difference between revisions

From Documentation de la solution web de gestion OpenFlyers
Jump to navigation Jump to search
imported>Bbarbe
No edit summary
imported>Bbarbe
No edit summary
Line 1: Line 1:
=Presentation=
=Présentation=
Here is an presentation of how to check if an identification/password couple submitted by your own scripts is correct according to the OpenFlyers database.
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.


=How it works=
=Comment ça marche=
If your OpenFlyers is located at http://openflyers.com/platform-name/ just post at http://openflyers.com/platform-name/checkIdent.php with login and rawPassword variables.
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'''.


'''Warning:''' OpenFlyers release 2 or higher required a password hashed with MD5 (see the commented $postData line below in the PHP script).
'''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).


==Possible return values==
==Valeurs de retour possibles==
The script display return an answer code which should be one of this value:
Le script retourne un chiffre parmi les suivant :
*0: OK
*0: OK
*1: OK but several profile availables. OpenFlyers select automatically the best profile.
*1: OK mais plusieurs profils disponibles. OpenFlyers sélectionne automatiquement le meilleur profil.
*2: outdate but authorized
*2: Expiré mais autorisé
*3: outdate but authorized with outdate profile
*3: Expiré mais autorisé, avec un profil expiré
*4: outdate subscription, unauthorized
*4: Abonnement expiré, refusé
*5: bad Ident, unauthorized
*5: Mauvais identifiants, refusé
*6: Banned (ip or login), unauthorized
*6: IP ou identifiants bloqués, refusé
*7: no Ident -> ask one
*7: Aucun identifiant donné, ils sont demandés


We recommend you to consider 0-2 OK and 3-7 bad
Nous vous recommandons de considérer un code de retour entre 0 et 2 comme bon et mauvais entre 3 et 7.


'''Warning:''' you have to filter public access login (with no right) because for OF, it's a valid access !!!
'''Attention:''' Vous devez filtrer les identifiants de connexion libres (sans droits) puisque pour OpenFlyers, ils correspondent à des accès autorisés !!!


=JavaScript=
=JavaScript=
If you are using your own authenticate form, use javascript function submit_pwd() located into \javascript\submitPwd.js
Si vous utilisez votre propre formulaire d'authentification, utilisez la fonction javascript submit_pwd() située dans \javascript\submitPwd.js .


=PHP code example=
=Exemple de code PHP=
Here an example how to send a post request with php :
Voici un exemple de code PHP permettant d'envoyer une requête POST :
<php>function httpPostRequest($host, $path, $postData) {  
<php>function httpPostRequest($host, $path, $postData) {  
   $result= "";  
   $result= "";  
Line 60: Line 60:
//$postData='login=jbond&rawPassword='.md5('007'); // for OpenFlyers release 2 or higher
//$postData='login=jbond&rawPassword='.md5('007'); // for OpenFlyers release 2 or higher
$postData='login=jbond&rawPassword=007';
$postData='login=jbond&rawPassword=007';
$rawContent = httpPostRequest('openflyers.com','http://openflyers.com/platform-name/checkIdent.php',$postData); [^]
$rawContent = httpPostRequest('openflyers.com','http://openflyers.com/plateform-name/checkIdent.php',$postData); [^]


list($header, $content) = explode("\r\n\r\n", $rawContent, 2);
list($header, $content) = explode("\r\n\r\n", $rawContent, 2);
Line 67: Line 67:
// the answer is in $realContent</php>
// the answer is in $realContent</php>


=Joomla authentification plugin=
=Plugin d'authentification Joomla=
If you have a Joomla website and you want that Openflyers users could connect to your Joomla restricted access zone, you may add this plugin to have only one account database: Openflyers one.
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.
You don't need to update Joomla user database, this plugin ask directly Openflyers thanks to CheckIdent.php script.
 
There are two files depending on your Joomla version:
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.


*[[Media:Joomla_authentication_plugin.zip|Joomla plugin for OpenFlyers]]
*[[Media:Joomla_authentication_plugin.zip|Joomla plugin for OpenFlyers]]

Revision as of 15:39, 2 December 2016

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 : <php>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("

Request:\n".htmlentities($request)."

");

 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</php>

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.