Skip to content

Latest commit

 

History

History
57 lines (39 loc) · 1.75 KB

README.md

File metadata and controls

57 lines (39 loc) · 1.75 KB

Yggdrasil Authenticator Library


This Rust library provides an interface for interacting with Yggdrasil's authentication system. It includes models for handling authentication requests, responses, and errors, as well as a client for sending HTTP requests to authenticate, refresh, validate, and sign out users.

Implemented Standard: authlib-injector

Features

  • AuthClient: The main client for handling authentication operations.
  • JSON Models: Structs for serializing/deserializing request and response data, including agents, profiles, users, and errors.
  • Error Handling: Custom error types for handling authentication failures.

Usage

Add the library to your Cargo.toml:

[dependencies]
yggdrasil-authenticator = "0.1.0"

Sample Code

use yggdrasil_authenticator::auth_agent::AuthAgent;
use yggdrasil_authenticator::client::client::AuthClient;
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let client = AuthClient::new(
        "https://myauthserver.com/auth-endpoint".to_string(), // No "/" at the end
        None, // No proxy URL
    );

    // Authenticate a user
    let agent = AuthAgent::new("Minecraft".to_string(), 1);
    let auth_response = client
        .authenticate(agent, "username", "password", "client_token", true)
        .await?;

    println!("Access Token: {}", auth_response.access_token);

    // Refresh token
    let refresh_response = client
        .refresh(&auth_response.access_token, &auth_response.client_token, true, None)
        .await?;

    println!("New Access Token: {}", refresh_response.access_token);

    Ok(())
}