microsoft_account

microsoft_account contains functions for login with a Microsoft Account. Before using this module you need to create a Azure application. Many thanks to wiki.vg for it’s documentation of the login process. You may want to read the Microsoft Login tutorial before using this module. For a list of all types see microsoft_types.

get_login_url(client_id: str, redirect_uri: str) str

Generate a login url.For a more secure alternative, use get_secure_login_data()

Parameters:
  • client_id (str) – The Client ID of your Azure App

  • redirect_uri (str) – The Redirect URI of your Azure App

Returns:

The url to the website on which the user logs in

Return type:

str

generate_state() str

Generates a random state

Return type:

str

get_secure_login_data(client_id: str, redirect_uri: str, state: str | None = None) tuple[str, str, str]

Generates the login data for a secure login with pkce and state.Prevents Cross-Site Request Forgery attacks and authorization code injection attacks.

Parameters:
  • client_id (str) – The Client ID of your Azure App

  • redirect_uri (str) – The Redirect URI of your Azure App

  • state (str | None) – You can use a existing state. If not set, a state will be generated using generate_state().

Return type:

tuple[str, str, str]

url_contains_auth_code(url: str) bool

Checks if the given url contains a authorization code

Parameters:

url (str) – The URL to check

Return type:

bool

get_auth_code_from_url(url: str) str | None

Get the authorization code from the url.If you want to check the state, use parse_auth_code_url(), which throws errors instead of returning an optional value.

Parameters:

url (str) – The URL to parse

Returns:

The auth code or None if the the code is nonexistent

Return type:

str | None

parse_auth_code_url(url: str, state: str | None) str

Parse the authorization code url and checks the state.

Parameters:
  • url (str) – The URL to parse

  • state (str | None) – If set, the function raises a AssertionError, if the state do no match the state in the URL

Returns:

The auth code

Return type:

str

get_authorization_token(client_id: str, client_secret: str | None, redirect_uri: str, auth_code: str, code_verifier: str | None = None) AuthorizationTokenResponse

Get the authorization token. This function is called during complete_login(), so you need to use this function ony if complete_login() doesn’t work for you.

Parameters:
  • client_id (str) – The Client ID of your Azure App

  • client_secret (str | None) – The Client Secret of your Azure App. This is deprecated and should not been used anymore.

  • redirect_uri (str) – The Redirect URI of your Azure App

  • auth_code (str) – The Code you get from parse_auth_code_url()

  • code_verifier (str | None) – The 3rd entry in the Tuple you get from get_secure_login_data()

Return type:

AuthorizationTokenResponse

refresh_authorization_token(client_id: str, client_secret: str | None, redirect_uri: str | None, refresh_token: str) AuthorizationTokenResponse

Refresh the authorization token. This function is called during complete_refresh(), so you need to use this function ony if complete_refresh() doesn’t work for you.

Parameters:
  • client_id (str) – The Client ID of your Azure App

  • client_secret (str | None) – The Client Secret of your Azure App. This is deprecated and should not been used anymore.

  • redirect_uri (str | None) – The Redirect URI of Azure App. This Parameter only exists for backwards compatibility and is not used anymore.

  • refresh_token (str) – Your refresh token

Return type:

AuthorizationTokenResponse

authenticate_with_xbl(access_token: str) XBLResponse

Authenticate with Xbox Live. This function is called during complete_login(), so you need to use this function ony if complete_login() doesn’t work for you.

Parameters:

access_token (str) – The Token you get from get_authorization_token()

Return type:

XBLResponse

authenticate_with_xsts(xbl_token: str) XSTSResponse

Authenticate with XSTS. This function is called during complete_login(), so you need to use this function ony if complete_login() doesn’t work for you.

Parameters:

xbl_token (str) – The Token you get from authenticate_with_xbl()

Return type:

XSTSResponse

authenticate_with_minecraft(userhash: str, xsts_token: str) MinecraftAuthenticateResponse

Authenticate with Minecraft. This function is called during complete_login(), so you need to use this function ony if complete_login() doesn’t work for you.

Parameters:
Return type:

MinecraftAuthenticateResponse

get_store_information(access_token: str) MinecraftStoreResponse

Get the store information.

Parameters:

access_token (str) – The Token you get from authenticate_with_minecraft()

Return type:

MinecraftStoreResponse

get_profile(access_token: str) MinecraftProfileResponse

Get the profile. This function is called during complete_login(), so you need to use this function ony if complete_login() doesn’t work for you.

Parameters:

access_token (str) – The Token you get from authenticate_with_minecraft()

Return type:

MinecraftProfileResponse

complete_login(client_id: str, client_secret: str | None, redirect_uri: str, auth_code: str, code_verifier: str | None = None) CompleteLoginResponse

Do the complete login process.

Parameters:
  • client_id (str) – The Client ID of your Azure App

  • client_secret (str | None) – The Client Secret of your Azure App. This is deprecated and should not been used anymore.

  • redirect_uri (str) – The Redirect URI of your Azure App

  • auth_code (str) – The Code you get from parse_auth_code_url()

  • code_verifier (str | None) – The 3rd entry in the Tuple you get from get_secure_login_data()

Raises:
Return type:

CompleteLoginResponse

It returns the following:

{
    "id" : "The uuid",
    "name" : "The username",
    "access_token": "The acces token",
    "refresh_token": "The refresh token",
    "skins" : [{
        "id" : "6a6e65e5-76dd-4c3c-a625-162924514568",
        "state" : "ACTIVE",
        "url" : "http://textures.minecraft.net/texture/1a4af718455d4aab528e7a61f86fa25e6a369d1768dcb13f7df319a713eb810b",
        "variant" : "CLASSIC",
        "alias" : "STEVE"
    } ],
    "capes" : []
}
complete_refresh(client_id: str, client_secret: str | None, redirect_uri: str | None, refresh_token: str) CompleteLoginResponse

Do the complete login process with a refresh token. It returns the same as complete_login().

Parameters:
  • client_id (str) – The Client ID of your Azure App

  • client_secret (str | None) – The Client Secret of your Azure App. This is deprecated and should not been used anymore.

  • redirect_uri (str | None) – The Redirect URI of Azure App. This Parameter only exists for backwards compatibility and is not used anymore.

  • refresh_token (str) – Your refresh token

Raises:
Return type:

CompleteLoginResponse

View the source code of this module