Crate minecraft_msa_auth

Source
Expand description

This crate allows you to authenticate into Minecraft online services using a Microsoft Oauth2 token. You can integrate it with oauth2-rs and build interactive authentication flows.

§Example

let client = BasicClient::new(
    ClientId::new(client_id),
    None,
    AuthUrl::new(MSA_AUTHORIZE_URL.to_string())?,
    Some(TokenUrl::new(MSA_TOKEN_URL.to_string())?),
)
.set_device_authorization_url(DeviceAuthorizationUrl::new(DEVICE_CODE_URL.to_string())?);

let details: StandardDeviceAuthorizationResponse = client
    .exchange_device_code()?
    .add_scope(Scope::new("XboxLive.signin offline_access".to_string()))
    .request_async(async_http_client)
    .await?;

println!(
    "Open this URL in your browser:\n{}\nand enter the code: {}",
    details.verification_uri().to_string(),
    details.user_code().secret().to_string()
);

let token = client
    .exchange_device_access_token(&details)
    .request_async(async_http_client, tokio::time::sleep, None)
    .await?;
println!("microsoft token: {:?}", token);

let mc_flow = MinecraftAuthorizationFlow::new(Client::new());
let mc_token = mc_flow.exchange_microsoft_token(token.access_token().secret()).await?;
println!("minecraft token: {:?}", mc_token);

Structs§

MinecraftAccessToken
Represents a Minecraft access token
MinecraftAuthenticationResponse
The response from Minecraft when attempting to authenticate with an xbox token
MinecraftAuthorizationFlow
The flow for authenticating with a Microsoft access token and getting a Minecraft access token.
XboxLiveAuthenticationResponseError
The error response from Xbox when authenticating with a Microsoft token

Enums§

MinecraftAccessTokenError
MinecraftAuthorizationError
Represents an error that can occur when authenticating with Minecraft.
MinecraftTokenType
Represents the token type of a Minecraft access token