Contrôle d'identification par OpenFlyers pour un logiciel tiers : Différence entre versions
(→How it works) |
|||
Ligne 1 : | Ligne 1 : | ||
− | = | + | =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. | |
− | = | + | =Explications du fonctionnement= |
− | + | 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 | *0: OK | ||
− | *1: OK | + | *1: OK mais plusieurs profils disponibles. OpenFlyers sélectionne automatiquement le meilleur profil. |
− | *2: | + | *2: Expiré mais autorisé |
− | *3: | + | *3: Expiré mais autorisé, avec un profil expiré |
− | *4: | + | *4: Abonnement expiré, refusé |
− | *5: | + | *5: Mauvais identifiants, refusé |
− | *6: | + | *6: IP ou identifiants bloqués, refusé |
− | *7: | + | *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= | =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) { | <php>function httpPostRequest($host, $path, $postData) { | ||
$result= ""; | $result= ""; | ||
Ligne 67 : | Ligne 67 : | ||
// the answer is in $realContent</php> | // the answer is in $realContent</php> | ||
− | =Joomla | + | =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 Jommla, 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]] |
Version du 2 décembre 2016 à 15:37
Sommaire
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.
Explications du fonctionnement
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 Jommla, ce plugin interroge directement OpenFlyers grâce au script PHP CheckIdent.php.