diff --git a/com.playeveryware.eos/Runtime/Core/EOSManager.cs b/com.playeveryware.eos/Runtime/Core/EOSManager.cs index f3f75290c..85c771975 100644 --- a/com.playeveryware.eos/Runtime/Core/EOSManager.cs +++ b/com.playeveryware.eos/Runtime/Core/EOSManager.cs @@ -199,6 +199,7 @@ public partial class EOSSingleton static private NotifyEventHandle s_notifyLoginStatusChangedCallbackHandle; static private NotifyEventHandle s_notifyConnectLoginStatusChangedCallbackHandle; static private NotifyEventHandle s_notifyConnectAuthExpirationCallbackHandle; + static private bool s_isConnectAuthExpirationLoginInProgress; // Setting it twice will cause an exception static bool hasSetLoggingCallback; @@ -1000,6 +1001,8 @@ public void CreateConnectUserWithContinuanceToken(ContinuanceToken token, SetLocalProductUserId(createUserCallbackInfo.LocalUserId); } + s_isConnectAuthExpirationLoginInProgress = false; + if (onCreateUserCallback != null) { onCreateUserCallback(createUserCallbackInfo); @@ -1177,6 +1180,8 @@ public void StartConnectLoginWithOptions(Epic.OnlineServices.Connect.LoginOption connectInterface.Login(ref connectLoginOptions, null, (ref Epic.OnlineServices.Connect.LoginCallbackInfo connectLoginData) => { + s_isConnectAuthExpirationLoginInProgress = false; + if (connectLoginData.ResultCode != Result.Success) { Log($"Connect login was not successful. ResultCode: {connectLoginData.ResultCode}", LogType.Error); @@ -1364,6 +1369,12 @@ private void ConfigureConnectExpirationCallback(Epic.OnlineServices.Connect.Logi ulong callbackHandle = EOSConnectInterface.AddNotifyAuthExpiration( ref addNotifyAuthExpirationOptions, null, (ref AuthExpirationCallbackInfo callbackInfo) => { + if (s_isConnectAuthExpirationLoginInProgress) + { + return; + } + + s_isConnectAuthExpirationLoginInProgress = true; StartConnectLoginWithOptions(connectLoginOptions, null); });