Aller au contenu
Litarvan

[Lib] OpenAuth - L'authentification comme chez Mojang, mais chez vous.

Recommended Posts

1433951098-banierreoauth.png

Hey tout le monde ! Encore une fois, une petite librairie assez cool pour vos launchers, mais pas forcément !

Depuis le nouveau launcher de la 1.6, un nouveau système d'authentification a été installé par Mojang utilisant les tokens :

Yggdrasil.

OpenAuth en est son implémentation Java Open-Source.

Vous allez me dire : "Mais ça existe déjà ! Il y a la lib de Kronos ou même celle de Mojang !"

Oui sauf que, OpenAuth est fourni avec un serveur Yggdrasil PHP codé majoritairement par Vavaballz <3, une grande première.

Le client OpenAuth que j'ai entièrement codé, permet de se connecter à n'importe quel serveur Yggdrasil, en choisissant même l'URL des différentes requêtes.

Bien sur, comme d'hab, tout est sous LGPL ! Utilisation commerciale autorisée sans besoin de citer !

Comment l'utiliser ?

J'ai rédigé un gros pavé sur la page Github, alors juste allez-y (mais c'est en Anglais).

https://github.com/TheShark34/OpenAuth/blob/master/README.md

Et pour le serveur, juste téléchargez le fichier installer.php (Si besoin téléchargez tout et prenez l'installeur), mettez le dans un dossier d'un FTP, et lancez le =). Ensuite suivez juste les instructions. Après, à vous de vous débrouiller pour relier tout ça à votre site.

Liens :

Sources du Client : https://github.com/TheShark34/OpenAuth/

Sources du Serveur : https://github.com/TheShark34/OpenAuth-Server.

Lien du client : https://github.com/TheShark34/OpenAuth/releases/download/1.0.0-SNAPSHOT/openauth-1.0.0-SNAPSHOT.jar

  • Upvote 4

Partager ce message


Lien à poster
Partager sur d’autres sites

Qu'entend tu par "relier l'authentification" ?

L'authentification est déjà personnalisable grâce au serveur (Lien dans le message de Shark).

Il faut juste modifier un lien et c'est fini.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui mais on en a parler, en fait il utilise SamantCMS, et du coup c'est le gros bordel, donc on a pas réussi à le relier.

SamantCMS = prout.

Je voulais en parler à Antoine Boulard, mais on m'a dit des choses sur lui, et, c'est pas une personne de confiance.

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai réussis a changer avec une nouvelle version du CMS.

Tu m'as dit qu'il fallait trouver l'endroit ou les joueurs sont enregistrés dans la BDD.

Avec plusieurs recherches, j'ai trouver ce code

if($_SESSION['erreurs'] == 0)
     {
      $md5 = md5($mdp);
      $time = time();

 $pseudo = htmlentities($user_pseudo, ENT_NOQUOTES, 'utf-8');
 $pseudo = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $pseudo);
 $pseudo = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $pseudo); // pour les ligatures e.g. '&oelig;'
 $pseudo = preg_replace('#&[^;]+;#', '', $pseudo); // supprime les autres caractères
 $pseudo = str_replace(';', '', $pseudo); // supprime les autres caractères
 $pseudo = str_replace(' ', '', $pseudo); // supprime les autres caractères
 


      $req = $bdd->prepare('INSERT INTO joueurs(user_pseudo, user_mdp, user_mail, user_inscription, reponse)
 VALUES(:user_pseudo, :user_mdp, :user_mail, :user_inscription, :reponse)');
      $req -> bindParam(':user_pseudo', $pseudo, PDO::PARAM_STR);
      $req -> bindParam(':user_mdp', $md5, PDO::PARAM_STR);
      $req -> bindParam(':user_mail', $mail, PDO::PARAM_STR);
      $req -> bindParam(':user_inscription', $time, PDO::PARAM_STR);
 $req -> bindParam(':reponse', $reponse, PDO::PARAM_STR);
      $req -> execute();
      
       $requete = $bdd->prepare('SELECT * FROM joueurs WHERE user_pseudo = :user_pseudo');
       $requete->bindParam(':user_pseudo', $user_pseudo, PDO::PARAM_STR);
       $requete->execute();
       $reponse = $requete->fetch();

       $_SESSION['utilisateur'] = $reponse;
       
       $requete->closeCursor();
 
       echo '<meta http-equiv="refresh" content="3;URL=../membres/">';
       
 $show->showSuccess('Inscription validée!');
     }
     else
     {
      if($_SESSION['erreurs'] == 1) $_SESSION['nb_erreurs'] = '<b>Il y a eu 1 erreur :</b>';
      else $_SESSION['nb_erreurs'] = '<b>Il y a eu '.$_SESSION['erreurs'].' erreurs.</b><br />';
      
 $msg_erreur = $_SESSION['nb_erreurs']. '';
 $msg_erreur .= $_SESSION['user_pseudo_info'];
 $msg_erreur .= $_SESSION['mdp_info'];
 $msg_erreur .= $_SESSION['mdp_verif_info'];
 $msg_erreur .= $_SESSION['mail_info'];
 $msg_erreur .= $_SESSION['mail_verif_info'];
 $msg_erreur .= $_SESSION['reponse_nfo'];

 $show->showError($msg_erreur);
       
   }

Partager ce message


Lien à poster
Partager sur d’autres sites

Antoine Boulard

SamantCMS est sûrement l'un des CMS les plus mal foutus de la planète.

Je te conseille d'essayer ExtazCMS, qui est gratuit, et qui niveau fonctionnalité est largement suffisant.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

SamantCMS est sûrement l'un des CMS les plus mal foutus de la planète.

Je te conseille d'essayer ExtazCMS, qui est gratuit, et qui niveau fonctionnalité est largement suffisant.

Effectivement, je suis totalement d'accord.

Sinon Zelouiix, le code que tu as montré est bien l'endroit où les joueurs sont enregistrés en base de données.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Riikog Purement d'accord (C'est d'ailleurs ce que j'ai dis dans mon message)

Zelouiix de toute façon peut importe le CMS il faudra forcément faire une reliure, en PHP.

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaye de telecharger les sources sans l'installer, directement depuis github puis remplace ce qu'il y a sur ton site par ce qu'y est dans le dossier server.

Shark a du oublier de mettre a jour le .zip

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne comprend pas même en remplaçant tout ce qui est sur le github j'ai toujours le même problème. Est-ce dû peut être à mon hébergement ?

J'ai remarquer également que les noms des dossiers était différent entre l'installer et le zip (majuscule au début), je ne sais pas si ça peut poser un problème ou non.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×