// Copyright Epic Games, Inc. All Rights Reserved. // This file is automatically generated. Changes to this file may be overwritten. namespace Epic.OnlineServices.Auth { public sealed partial class AuthInterface : Handle { public AuthInterface() { } public AuthInterface(System.IntPtr innerHandle) : base(innerHandle) { } /// /// The most recent version of the struct. /// public const int AccountfeaturerestrictedinfoApiLatest = 1; /// /// The most recent version of the API. /// public const int AddnotifyloginstatuschangedApiLatest = 1; /// /// The most recent version of the API. /// public const int CopyuserauthtokenApiLatest = 1; /// /// The most recent version of the struct. /// public const int CredentialsApiLatest = 3; /// /// The most recent version of the API. /// public const int DeletepersistentauthApiLatest = 2; /// /// The most recent version of the API. /// public const int LinkaccountApiLatest = 1; /// /// The most recent version of the API. /// public const int LoginApiLatest = 2; /// /// The most recent version of the API. /// public const int LogoutApiLatest = 1; /// /// The most recent version of the struct. /// public const int PingrantinfoApiLatest = 2; /// /// The most recent version of the struct. /// public const int TokenApiLatest = 2; /// /// The most recent version of the API. /// public const int VerifyuserauthApiLatest = 1; /// /// Register to receive login status updates. /// @note must call RemoveNotifyLoginStatusChanged to remove the notification /// /// structure containing the api version of AddNotifyLoginStatusChanged to use /// arbitrary data that is passed back to you in the callback /// a callback that is fired when the login status for a user changes /// /// handle representing the registered callback /// public ulong AddNotifyLoginStatusChanged(AddNotifyLoginStatusChangedOptions options, object clientData, OnLoginStatusChangedCallback notification) { var optionsAddress = System.IntPtr.Zero; Helper.TryMarshalSet(ref optionsAddress, options); var clientDataAddress = System.IntPtr.Zero; var notificationInternal = new OnLoginStatusChangedCallbackInternal(OnLoginStatusChangedCallbackInternalImplementation); Helper.AddCallback(ref clientDataAddress, clientData, notification, notificationInternal); var funcResult = Bindings.EOS_Auth_AddNotifyLoginStatusChanged(InnerHandle, optionsAddress, clientDataAddress, notificationInternal); Helper.TryMarshalDispose(ref optionsAddress); Helper.TryAssignNotificationIdToCallback(clientDataAddress, funcResult); return funcResult; } /// /// Fetches a user auth token for an Epic Online Services Account ID. /// /// /// Structure containing the api version of CopyUserAuthToken to use /// The Epic Online Services Account ID of the user being queried /// The auth token for the given user, if it exists and is valid; use when finished /// /// if the information is available and passed out in OutUserAuthToken /// if you pass a null pointer for the out parameter /// if the auth token is not found or expired. /// public Result CopyUserAuthToken(CopyUserAuthTokenOptions options, EpicAccountId localUserId, out Token outUserAuthToken) { var optionsAddress = System.IntPtr.Zero; Helper.TryMarshalSet(ref optionsAddress, options); var localUserIdInnerHandle = System.IntPtr.Zero; Helper.TryMarshalSet(ref localUserIdInnerHandle, localUserId); var outUserAuthTokenAddress = System.IntPtr.Zero; var funcResult = Bindings.EOS_Auth_CopyUserAuthToken(InnerHandle, optionsAddress, localUserIdInnerHandle, ref outUserAuthTokenAddress); Helper.TryMarshalDispose(ref optionsAddress); if (Helper.TryMarshalGet(outUserAuthTokenAddress, out outUserAuthToken)) { Bindings.EOS_Auth_Token_Release(outUserAuthTokenAddress); } return funcResult; } /// /// Deletes a previously received and locally stored persistent auth access token for the currently logged in user of the local device. /// /// On Desktop and Mobile platforms, the access token is deleted from the keychain of the local user and a backend request is made to revoke the token on the authentication server. /// On Console platforms, even though the caller is responsible for storing and deleting the access token on the local device, /// this function should still be called with the access token before its deletion to make the best effort in attempting to also revoke it on the authentication server. /// If the function would fail on Console, the caller should still proceed as normal to delete the access token locally as intended. /// /// structure containing operation input parameters /// arbitrary data that is passed back to you in the CompletionDelegate /// a callback that is fired when the deletion operation completes, either successfully or in error public void DeletePersistentAuth(DeletePersistentAuthOptions options, object clientData, OnDeletePersistentAuthCallback completionDelegate) { var optionsAddress = System.IntPtr.Zero; Helper.TryMarshalSet(ref optionsAddress, options); var clientDataAddress = System.IntPtr.Zero; var completionDelegateInternal = new OnDeletePersistentAuthCallbackInternal(OnDeletePersistentAuthCallbackInternalImplementation); Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal); Bindings.EOS_Auth_DeletePersistentAuth(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal); Helper.TryMarshalDispose(ref optionsAddress); } /// /// Fetch an Epic Online Services Account ID that is logged in. /// /// An index into the list of logged in accounts. If the index is out of bounds, the returned Epic Online Services Account ID will be invalid. /// /// The Epic Online Services Account ID associated with the index passed /// public EpicAccountId GetLoggedInAccountByIndex(int index) { var funcResult = Bindings.EOS_Auth_GetLoggedInAccountByIndex(InnerHandle, index); EpicAccountId funcResultReturn; Helper.TryMarshalGet(funcResult, out funcResultReturn); return funcResultReturn; } /// /// Fetch the number of accounts that are logged in. /// /// /// the number of accounts logged in. /// public int GetLoggedInAccountsCount() { var funcResult = Bindings.EOS_Auth_GetLoggedInAccountsCount(InnerHandle); return funcResult; } /// /// Fetches the login status for an Epic Online Services Account ID. /// /// The Epic Online Services Account ID of the user being queried /// /// The enum value of a user's login status /// public LoginStatus GetLoginStatus(EpicAccountId localUserId) { var localUserIdInnerHandle = System.IntPtr.Zero; Helper.TryMarshalSet(ref localUserIdInnerHandle, localUserId); var funcResult = Bindings.EOS_Auth_GetLoginStatus(InnerHandle, localUserIdInnerHandle); return funcResult; } /// /// Link external account by continuing previous login attempt with a continuance token. /// /// On Desktop and Mobile platforms, the user will be presented the Epic Account Portal to resolve their identity. /// /// On Console, the user will login to their Epic Account using an external device, e.g. a mobile device or a desktop PC, /// by browsing to the presented authentication URL and entering the device code presented by the game on the console. /// /// On success, the user will be logged in at the completion of this action. /// This will commit this external account to the Epic Account and cannot be undone in the SDK. /// /// structure containing the account credentials to use during the link account operation /// arbitrary data that is passed back to you in the CompletionDelegate /// a callback that is fired when the link account operation completes, either successfully or in error public void LinkAccount(LinkAccountOptions options, object clientData, OnLinkAccountCallback completionDelegate) { var optionsAddress = System.IntPtr.Zero; Helper.TryMarshalSet(ref optionsAddress, options); var clientDataAddress = System.IntPtr.Zero; var completionDelegateInternal = new OnLinkAccountCallbackInternal(OnLinkAccountCallbackInternalImplementation); Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal); Bindings.EOS_Auth_LinkAccount(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal); Helper.TryMarshalDispose(ref optionsAddress); } /// /// Login/Authenticate with user credentials. /// /// structure containing the account credentials to use during the login operation /// arbitrary data that is passed back to you in the CompletionDelegate /// a callback that is fired when the login operation completes, either successfully or in error public void Login(LoginOptions options, object clientData, OnLoginCallback completionDelegate) { var optionsAddress = System.IntPtr.Zero; Helper.TryMarshalSet(ref optionsAddress, options); var clientDataAddress = System.IntPtr.Zero; var completionDelegateInternal = new OnLoginCallbackInternal(OnLoginCallbackInternalImplementation); Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal); Bindings.EOS_Auth_Login(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal); Helper.TryMarshalDispose(ref optionsAddress); } /// /// Signs the player out of the online service. /// /// structure containing information about which account to log out. /// arbitrary data that is passed back to you in the CompletionDelegate /// a callback that is fired when the logout operation completes, either successfully or in error public void Logout(LogoutOptions options, object clientData, OnLogoutCallback completionDelegate) { var optionsAddress = System.IntPtr.Zero; Helper.TryMarshalSet(ref optionsAddress, options); var clientDataAddress = System.IntPtr.Zero; var completionDelegateInternal = new OnLogoutCallbackInternal(OnLogoutCallbackInternalImplementation); Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal); Bindings.EOS_Auth_Logout(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal); Helper.TryMarshalDispose(ref optionsAddress); } /// /// Unregister from receiving login status updates. /// /// handle representing the registered callback public void RemoveNotifyLoginStatusChanged(ulong inId) { Helper.TryRemoveCallbackByNotificationId(inId); Bindings.EOS_Auth_RemoveNotifyLoginStatusChanged(InnerHandle, inId); } /// /// Contact the backend service to verify validity of an existing user auth token. /// This function is intended for server-side use only. /// /// structure containing information about the auth token being verified /// arbitrary data that is passed back to you in the CompletionDelegate /// a callback that is fired when the logout operation completes, either successfully or in error public void VerifyUserAuth(VerifyUserAuthOptions options, object clientData, OnVerifyUserAuthCallback completionDelegate) { var optionsAddress = System.IntPtr.Zero; Helper.TryMarshalSet(ref optionsAddress, options); var clientDataAddress = System.IntPtr.Zero; var completionDelegateInternal = new OnVerifyUserAuthCallbackInternal(OnVerifyUserAuthCallbackInternalImplementation); Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal); Bindings.EOS_Auth_VerifyUserAuth(InnerHandle, optionsAddress, clientDataAddress, completionDelegateInternal); Helper.TryMarshalDispose(ref optionsAddress); } [MonoPInvokeCallback(typeof(OnDeletePersistentAuthCallbackInternal))] internal static void OnDeletePersistentAuthCallbackInternalImplementation(System.IntPtr data) { OnDeletePersistentAuthCallback callback; DeletePersistentAuthCallbackInfo callbackInfo; if (Helper.TryGetAndRemoveCallback(data, out callback, out callbackInfo)) { callback(callbackInfo); } } [MonoPInvokeCallback(typeof(OnLinkAccountCallbackInternal))] internal static void OnLinkAccountCallbackInternalImplementation(System.IntPtr data) { OnLinkAccountCallback callback; LinkAccountCallbackInfo callbackInfo; if (Helper.TryGetAndRemoveCallback(data, out callback, out callbackInfo)) { callback(callbackInfo); } } [MonoPInvokeCallback(typeof(OnLoginCallbackInternal))] internal static void OnLoginCallbackInternalImplementation(System.IntPtr data) { OnLoginCallback callback; LoginCallbackInfo callbackInfo; if (Helper.TryGetAndRemoveCallback(data, out callback, out callbackInfo)) { callback(callbackInfo); } } [MonoPInvokeCallback(typeof(OnLoginStatusChangedCallbackInternal))] internal static void OnLoginStatusChangedCallbackInternalImplementation(System.IntPtr data) { OnLoginStatusChangedCallback callback; LoginStatusChangedCallbackInfo callbackInfo; if (Helper.TryGetAndRemoveCallback(data, out callback, out callbackInfo)) { callback(callbackInfo); } } [MonoPInvokeCallback(typeof(OnLogoutCallbackInternal))] internal static void OnLogoutCallbackInternalImplementation(System.IntPtr data) { OnLogoutCallback callback; LogoutCallbackInfo callbackInfo; if (Helper.TryGetAndRemoveCallback(data, out callback, out callbackInfo)) { callback(callbackInfo); } } [MonoPInvokeCallback(typeof(OnVerifyUserAuthCallbackInternal))] internal static void OnVerifyUserAuthCallbackInternalImplementation(System.IntPtr data) { OnVerifyUserAuthCallback callback; VerifyUserAuthCallbackInfo callbackInfo; if (Helper.TryGetAndRemoveCallback(data, out callback, out callbackInfo)) { callback(callbackInfo); } } } }