From dc3917b05018cb32e2451d9eaed242036c5e7512 Mon Sep 17 00:00:00 2001 From: bigfoot547 Date: Tue, 28 Jan 2025 21:23:07 -0600 Subject: wip: auth --- src/auth/types.rs | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/auth/types.rs (limited to 'src/auth/types.rs') diff --git a/src/auth/types.rs b/src/auth/types.rs new file mode 100644 index 0000000..8889b63 --- /dev/null +++ b/src/auth/types.rs @@ -0,0 +1,49 @@ +use chrono::{DateTime, Utc}; +use multimap::MultiMap; +use serde::{Deserialize, Serialize}; +use uuid::Uuid; + +#[derive(Debug, Serialize, Deserialize)] +pub struct Property { + pub value: String, + pub signature: Option +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct UserProfile { + pub uuid: Option, + pub name: Option, + + #[serde(default, skip_serializing_if = "MultiMap::is_empty")] + pub properties: MultiMap +} + +#[derive(Debug, Serialize, Deserialize)] +pub(super) struct Token { + pub value: String, + + #[serde(skip_serializing_if = "Option::is_none")] + pub expire: Option> +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct MsaUser { + #[serde(skip_serializing_if = "Option::is_none")] + pub profile: Option, + pub xuid: Uuid, + pub(super) auth_token: Option, + pub(super) xbl_token: Option, + pub(super) refresh_token: Option +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(tag = "type")] +pub enum User { + Dummy(UserProfile), + MSA(MsaUser) +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct AuthenticationDatabase { + pub users: Vec +} -- cgit v1.2.3-70-g09d2