Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $user = "lululombard"; // Votre nom d'utisateur (aucun rapport avec celui de Yubikey)
- $yubikey = "ccccccbcldid"; // Votre ID unique (12 premiers caractères)
- if (isset($_POST['OTP'])) { // On vérifie si on a envoyé un OTP
- $otp = ($_POST['OTP']); // La variable OTP est enregistré
- $device_id = substr($otp, 0, 12); // On récupère les 12 premiers caractères dans la variable $device_id
- if ($device_id == $yubikey) { // On vérifie si c'est bien le bon ID unique
- echo '<p>Bonjour ' . $user . ' !</p>'; // On dit bonjour à l'utisateur
- $url = "http://api.yubico.com/wsapi/verify?id=970&otp=" . $otp; // On se connecte sur l'API
- $fp = fopen($url,"r"); // On ouvre le résultat de l'API
- while (!feof($fp)) { // On lit toutes les lignes...
- $page .= fgets($fp, 3); // Jusqu'a la troisième
- }
- if (strpos($page, 'status=OK') !== FALSE) { // On vérifie si les serveurs de Yubico ont accepté
- echo '<p>Clé validée</p>'; // Si c'est le cas le résultat est là
- }
- elseif (strpos($page, 'status=REPLAYED_OTP') !== FALSE) { // Sinon on vérifie si la clé aurait pas été envoyée deux fois
- echo '<p>Clé déjà utilisée. Veuillez réessayer.</p>'; // Si c'est le cas le résultat est là
- }
- else {
- echo '<p>Votre clé est invalide.</p>'; // Si les serveurs de Yubico ne répondent pas ou il y a une erreur, on envoie ceci.
- }
- }
- else {
- echo "<p>Mais vous n'êtes pas " . $user . " ?</p>"; // Si l'ID unique ne correspond pas, on en informe l'utilisateur.
- }
- }
- else { // Si rien n'a été envoyé, on invite à entrer le OTP.
- echo '<p>Entrez votre code OTP Yubikey</p>';
- echo "\n";
- echo '<form action="" method="post">';
- echo "\n";
- echo '<input name="OTP" type="text" placeholder="Yubikey OTP" size="44" maxlength="44">';
- echo "\n";
- echo '</form>';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement