diff options
Diffstat (limited to 'src/auth')
| -rw-r--r-- | src/auth/msa.rs | 33 | ||||
| -rw-r--r-- | src/auth/types.rs | 2 |
2 files changed, 34 insertions, 1 deletions
diff --git a/src/auth/msa.rs b/src/auth/msa.rs index e69de29..da9a376 100644 --- a/src/auth/msa.rs +++ b/src/auth/msa.rs @@ -0,0 +1,33 @@ +use chrono::{DateTime, Utc}; +use oauth2::AccessToken; +use serde::{Deserialize, Serialize}; +use crate::auth::AuthError; + +const XBOX_LIVE_AUTH: &str = "https://user.auth.xboxlive.com/user/authenticate"; + +#[derive(Debug, Serialize)] +#[serde(rename_all = "PascalCase")] +struct XboxLiveAuthRequestProperties<'a> { + auth_method: &'a str, + site_name: &'a str, + rps_ticket: &'a str +} + +#[derive(Debug, Serialize)] +#[serde(rename_all = "PascalCase")] +struct XboxLiveAuthRequest<'a> { + properties: XboxLiveAuthRequestProperties<'a>, + relying_party: &'a str, + token_type: &'a str +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "PascalCase")] +struct XboxLiveAuthResponse { + token: String, + not_after: DateTime<Utc> +} + +pub fn xbox_live_login(client: &reqwest::Client, access_token: &AccessToken) -> Result<(), AuthError> { + +}
\ No newline at end of file diff --git a/src/auth/types.rs b/src/auth/types.rs index 79cf84f..f455657 100644 --- a/src/auth/types.rs +++ b/src/auth/types.rs @@ -31,7 +31,7 @@ pub(super) struct Token { pub struct MsaUser {
#[serde(skip_serializing_if = "Option::is_none")]
pub profile: Option<UserProfile>,
- pub xuid: Uuid,
+ pub xuid: Option<Uuid>,
pub(super) client_id: oauth2::ClientId,
|
