Authentification Java Minecraft


J'ai besoin de trouver un moyen de vérifier si le nom d'utilisateur et le mot de passe minecraft sont valides.

J'ai trouvé cette documentation, qui dit beaucoup de choses sur minecraft authentification : http://wiki.vg/Authentication

On dirait qu'il a besoin d'une requête HTTP POST JSON mais je n'ai aucune idée de comment faire cela: S

J'ai beaucoup cherché et parcouru beaucoup d'exemples mais aucun de ces travaux. Le meilleur résultat que j'ai eu est aucun résultat imprimé dans la console ou un 403 erreur.

Merci

Author: Jamesst20, 2014-05-04

1 answers

J'ai compris comment faire !

    private static String MakeJSONRequest(String username, String password){
        JSONObject json1 = new JSONObject();
        json1.put("name", "Minecraft");
        json1.put("version", 1);
        JSONObject json = new JSONObject();
        json.put("agent", json1);
        json.put("username", username);
        json.put("password", password);

        return json.toJSONString();
    }

    private static String httpRequest(URL url, String content) throws Exception {
        byte[] contentBytes = content.getBytes("UTF-8");

        URLConnection connection = url.openConnection();
        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setRequestProperty("Accept-Charset", "UTF-8");
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setRequestProperty("Content-Length", Integer.toString(contentBytes.length));

        OutputStream requestStream = connection.getOutputStream();
        requestStream.write(contentBytes, 0, contentBytes.length);
        requestStream.close();

        String response = "";
        BufferedReader responseStream;
        if (((HttpURLConnection) connection).getResponseCode() == 200) {
            responseStream = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
        } else {
            responseStream = new BufferedReader(new InputStreamReader(((HttpURLConnection) connection).getErrorStream(), "UTF-8"));
        }

        response = responseStream.readLine();
        responseStream.close();

        if (((HttpURLConnection) connection).getResponseCode() != 200) {
            //Failed to login (Invalid Credentials or whatever)
        }

        return response;
    }

Comment l'utiliser :

System.out.println(httpRequest(new URL("https://authserver.mojang.com/authenticate"), MakeJSONRequest("YourUsername", "YourPassword")));
 5
Author: Jamesst20, 2014-05-04 22:47:52