/// <summary>Attempts to authenticate a user using a Steam Encrypted App Ticket.</summary> public static void AuthenticateWithSteamEncryptedAppTicket(string encodedTicket, Action <UserProfile> onSuccess, Action <WebRequestError> onError) { APIClient.RequestSteamAuthentication(encodedTicket, (t) => { UserAuthenticationData authData = new UserAuthenticationData() { token = t, wasTokenRejected = false, steamTicket = encodedTicket, gogTicket = null, }; UserAuthenticationData.instance = authData; UserAccountManagement.FetchUserProfile(onSuccess, onError); }, (e) => { UnityEngine.Debug.LogError( $"<b>[mod.io Authentication Steam]</b> Failed with ticket: {encodedTicket}" + $"{System.Environment.NewLine}{e.ToUnityDebugString()}"); onError(e); } ); }
// ---------[ UTILITY ]--------- /// <summary>A wrapper function for setting the UserAuthenticationData.wasTokenRejected to false.</summary> public static void MarkAuthTokenRejected() { UserAuthenticationData data = UserAuthenticationData.instance; data.wasTokenRejected = true; UserAuthenticationData.instance = data; }
/// <summary>Loads the UserAuthenticationData from disk.</summary> private static void LoadInstance() { UserAuthenticationData cachedData; if (IOUtilities.TryReadJsonObjectFile(FILE_LOCATION, out cachedData)) { UserAuthenticationData.m_instance = cachedData; } }
/// <summary>Stores the oAuthToken and steamTicket and fetches the UserProfile.</summary> private static void FetchUserProfile(Action <UserProfile> onSuccess, Action <WebRequestError> onError) { APIClient.GetAuthenticatedUser((p) => { UserAuthenticationData data = UserAuthenticationData.instance; data.userId = p.id; UserAuthenticationData.instance = data; if (onSuccess != null) { onSuccess(p); } }, onError); }
/// <summary>Attempts to authenticate a user using an emailed security code.</summary> public static void AuthenticateWithSecurityCode(string securityCode, Action <UserProfile> onSuccess, Action <WebRequestError> onError) { APIClient.GetOAuthToken(securityCode, (t) => { UserAuthenticationData authData = new UserAuthenticationData() { token = t, wasTokenRejected = false, steamTicket = null, gogTicket = null, }; UserAuthenticationData.instance = authData; UserAccountManagement.FetchUserProfile(onSuccess, onError); }, onError); }
/// <summary>Attempts to authenticate a user using a GOG Encrypted App Ticket.</summary> public static void AuthenticateWithGOGEncryptedAppTicket(string encodedTicket, Action <UserProfile> onSuccess, Action <WebRequestError> onError) { APIClient.RequestGOGAuthentication(encodedTicket, (t) => { UserAuthenticationData authData = new UserAuthenticationData() { token = t, wasTokenRejected = false, gogTicket = encodedTicket, steamTicket = null, }; UserAuthenticationData.instance = authData; UserAccountManagement.FetchUserProfile(onSuccess, onError); }, onError); }
/// <summary>Clears the instance and deletes the data on disk.</summary> public static void Clear() { UserAuthenticationData.m_instance = UserAuthenticationData.NONE; IOUtilities.DeleteFile(UserAuthenticationData.FILE_LOCATION); }
// ---------[ SAVE/LOAD ]--------- /// <summary>Clears the instance and deletes the data on disk.</summary> public static void Clear() { UserAuthenticationData.instance = UserAuthenticationData.NONE; }