Legacy Authentication

For the currently used authentication system see Authentication.

Login
To log the player in, the official launcher sends an HTTPS POST (GET appears to suffice as well) request to: https://login.minecraft.net with the postdata: ?user= &password= &version= and a "application/x-www-form-urlencoded" Content-Type header.

After migrating to Mojang accounts, the email address is used instead of a username, but the procedure stays the same.

The current launcher version is "13" (for new launcher it's "14"), sending a value lower than 12 will cause the server to return "Old version", however, you can send any large number and it will return as expected. If the login succeeded, it will return 5 ':' delimited values. 1343825972000:deprecated:SirCmpwn:7ae9007b9909de05ea58e94199a33b30c310c69c:dba0c48e1c584963b9e93a038a66bb98
 * 1) current version of the game files (not the launcher itself). This is a unix timestamp which the launcher compares to the ~/.minecraft/bin/version file.
 * 2) Previously contained a download ticket for requesting new versions of minecraft.jar from the server. Now contains only "deprecated".
 * 3) case-correct username. For mojang accounts, the user's actual username is returned here instead of the email used to log in.
 * 4) sessionId - a unique ID for your current session.
 * 5) UID - currently unused, introduced near August 8th, 2012. Grum says this is the unique ID for the user, potentially for changing Minecraft names in future.

If the request is missing a parameter, the server will return "Bad response". If the login information is incorrect, the server will return "Bad login". If the login information is correct but the account isn't premium, the server will return "User not premium". If your minecraft.net account has been migrated to a Mojang account but you're logging in with your minecraft.net username the server will return "Account migrated, use e-mail".

Keep-alive
Every 6000 ticks, the client sends an HTTPS request to https://login.minecraft.net/session?name= &session= The client discards the server's response.