Skip to content
🚧 This project and documentation is under construction and may be inaccurate. Packages and APIS may not be ready or available. 🚧

Cauldron Authentication

This Documentation is correct for version 1.3.6 of CauldronAuthentication

Cauldron Authentication is responsible for authenticating Minecraft Users using the Microsoft Authentication System which is the only way to log in to Mojang now. This package provides all the tools needed to acquire a Minecraft Access token from an oauth token.

This project is licensed under GPL 3.0 so please make sure that your project follows the license guidelines.

To Install the package, run the following command

npm i @jackcooperdev/cauldronauthentication

To use this package, you need to provide a way to get a Microsoft access token. To do this, you need to create an Azure application. See here for more information.

const { startAuthenticationFlow } = require('@jackcooperdev/cauldronauthentication');
const account = await startAuthenticationFlow(microsoftAccessToken);
console.log(account.profile.username);

Pass the access_token from the result to Cauldron Engine’s startGame. The engine reads the username and UUID from the token itself.

const { startGame } = require('@jackcooperdev/cauldronengine/client');
await startGame('1.20.1', { type: 'vanilla' }, account.access_token);

This function performs the authentication flow turning a microsoft access token into a minecraft access token and getting the profile information for the user.

It takes the following parameters

  • microsoftAccessToken - Microsoft Access Token Acquired through oAuth flow.

The function runs each step of the MAS flow in order and resolves with the following object.

{
"profile": {
"uuid": "069a79f444e94726a5befca90e38aaf5",
"username": "Notch"
},
"xui": "0000000000000000",
"access_token": "MINECRAFT_ACCESS_TOKEN",
"user_id": "aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa"
}
  • profile: The player’s Minecraft username and UUID
  • xui: The Xbox user hash
  • access_token: Minecraft access token (valid for 24 hours)
  • user_id: The account’s user id. This is not the Minecraft UUID

If no token is passed, the function rejects with NO_ACCESS_TOKEN.

If any step fails, the function rejects with an object containing the error code of the step that failed.

{ "error": "XBOXLIVE_AUTH_FAIL" }
Error Step
XBOXLIVE_AUTH_FAIL authenticateXboxLive
MOJANG_FAIL authorizeMojang
MINECRAFT_FAIL authenticateMinecraft
PROFILE_GET_ERROR getProfileData. Also occurs if the account does not own Minecraft
Name Import Description
MAS @jackcooperdev/cauldronauthentication/mas Provides Access to the individual functions

Wiki.vg was a great resource that provided lots of information on how various parts of Minecraft works. It has been merged into Minecraft Wiki and can be viewed here