Open Auth
Introduction
Open Auth est une librairie Java développée par Litarvan qui offre une méthode rapide pour s’authentifier via les services officiels pour un client Minecraft. Dans cet article, nous parlerons exclusivement de l’authentification (cité sous le nom “d’auth” à partir de maintenant) par un compte Microsoft. En effet, désormais Mojang supporte uniquement cette méthode.
Importer la librairie
Cette librairie est hébergée sur le maven de Litarvan, vous pouvez donc l’importer dans votre projet comme ceci :
Avec Gradle :
|
|
Avec Maven :
|
|
518589d222
, puisque cette version n’a pas été publié). Allez sur la page des
releases pour voir la
dernière version disponible.Authentification
Plusieurs méthodes d’auth sont disponibles en fonction des besoins de l’application que vous développez.
Pour toutes les méthodes d’auth suivantes, il faut déclarer un objet de type MicrosoftAuthenticator
comme ceci :
|
|
Auth par “Credentials”:
Cette méthode permet de se connecter avec l’email et le mot de passe du compte Microsoft, elle peut être utile dans le cas ou l’application intègre ses propres champs de texte pour la connexion. Nonobstant, cette méthode est déconseillée car elle n’est pas sécurisée, et peut être utilisée pour récupérer des informations sensibles par l’application (puisqu’elle traîte directement les informations de connexion). De plus, cette méthode ne supporte pas la double authentification “A2F”. Voici comment l’utiliser :
|
|
Auth par “WebView”:
Cette méthode permet de se connecter avec une interface de connexion Microsoft, comme ceci :
Voici comment l’utiliser :
|
|
Si vous voulez utiliser la méthode asynchrone, utilisez simplement loginWithAsyncWebView
au lieu de loginWithWebView
;
Auth par “RefreshToken:
Cette méthode d’auth permet de se connecter avec un refresh_token, elle est utilisée pour éviter de se reconnecter à chaque lancement. Le refresh_token est récupérable avec une authentification basique, sauvegardez le dans un fichier pour le récupérer au prochain lancement. Voici comment l’utiliser :
|
|
Auth par “DeviceId”
Cette auth est en cours d’écriture, elle permettrait de ne pas utiliser la webView et d’ouvrir une page internet pour taper un code, comme il est fait dans le launcher de multiMc
Résultat
Pour toutes ces méthodes d’auth, nous obtenons un objet result de type MicrosoftAuthResult
. Cet objet nous permet de récupérer plusieurs informations sur le compte que nous venons de connecter :
- le profil avec la méthode
result.getProfile()
- l’accesToken avec la méthode
result.getAccessToken()
- le refreshToken avec la méthode
result.getRefreshToken()
- l’xuid avec la méthode
result.getXuid()
- le clientId avec la méthode
result.getClientId()
Les deux derniers ids sont nécessaires notamment pour les authentifications à partir de la 1.18.
Le profil
La méthode result.getProfile()
retourne uen objet de type MinecraftProfile
, qui peut être utilisé avec les méthodes suivantes :
getId()
permets de récupérer l’UUID du compte minecraftgetName()
permets de récupérer le nom du compte du joueurgetSkins()
permets de récupérer la liste des skins du joueur sous forme de MinecraftSkin[] (je ne détaillerais pas ici l’utilisation de cette classe que vous pouvez trouver ici)
Les tokens
- L’acces token est utilisé pour lancer le jeu, par exemple avec la librairie OpenLauncherLib
- Le refresh token, dont nous avons déjà parlé avant, permet quant à lui de se reconnecter directement, sans avoir à rentrer de mot de passe, il est donc pratique de le sauvegarder dans un fichier après la connexion.