コード例 #1
0
 private void SwitchToDefaultAuthProvider()
 {
     if (mCurrentProvider != null && !(mCurrentProvider is DefaultAuthProvider))
     {
         mCurrentProvider.Dispose();
         mCurrentProvider = null;
     }
     if (mCurrentProvider == null)
     {
         mCurrentProvider = new DefaultAuthProvider();
     }
 }
コード例 #2
0
        public bool SetCurrentProvider(AuthProvider provider)
        {
            DebugLogger.Log($"[SnipeAuthCommunicator] SetCurrentProvider - {provider?.ProviderId}");

            if (provider == null)
            {
                if (mCurrentProvider != null)
                {
                    mCurrentProvider.Dispose();
                    mCurrentProvider = null;
                }
                return(false);
            }

            if (mCurrentProvider == provider || mCurrentProvider?.ProviderId == provider?.ProviderId)
            {
                return(true);
            }

            if (mAuthProviders != null)
            {
                if (mAuthProviders.IndexOf(provider) >= 0)
                {
                    if (mCurrentProvider != null)
                    {
                        mCurrentProvider.Dispose();
                    }

                    mCurrentProvider = provider;
                    return(true);
                }
                else
                {
                    var added_provider = GetAuthProvider(provider.ProviderId);
                    if (added_provider != null)
                    {
                        if (mCurrentProvider != null)
                        {
                            mCurrentProvider.Dispose();
                        }

                        mCurrentProvider = added_provider;
                        return(true);
                    }
                }
            }

            return(false);
        }
コード例 #3
0
        private void OnCurrentProviderAuthSuccess(int user_id, string login_token)
        {
            UserID     = user_id;
            LoginToken = login_token;

            InvokeAuthSuccessCallback();

            ResetCheckLoginTokenExpiryCoroutine();

            mCurrentProvider?.Dispose();
            mCurrentProvider = null;

            BindAllProviders(mRebindAllProviders);
            mRebindAllProviders = false;
        }
コード例 #4
0
        private void OnCurrentProviderAuthResult(string error_code, int user_id = 0)
        {
            if (user_id != 0)
            {
                UserID = user_id;

                InvokeAuthSuccessCallback(user_id);

                mCurrentProvider?.Dispose();
                mCurrentProvider = null;

                BindAllProviders(mRebindAllProviders);
                mRebindAllProviders = false;
            }
            else
            {
                DebugLogger.Log("[SnipeAuthCommunicator] OnCurrentProviderAuthFail (" + (mCurrentProvider != null ? mCurrentProvider.ProviderId : "null") + ") error_code: " + error_code);

                mRebindAllProviders = false;

                if (mCurrentProvider is DefaultAuthProvider)
                {
                    if (error_code == SnipeErrorCodes.NOT_INITIALIZED || error_code == SnipeErrorCodes.NO_SUCH_USER)
                    {
                        RequestRegister();
                    }
                    else
                    {
                        InvokeAuthFailCallback(error_code);
                    }
                }
                else                  // try next provider
                {
                    if (mCurrentProvider != null)
                    {
                        mCurrentProvider.Dispose();
                    }

                    SwitchToNextAuthProvider();
                    CurrentProviderRequestAuth();
                }
            }
        }
コード例 #5
0
        public void Authorize(bool reset, AuthResultCallback callback = null)
        {
            if (reset)             // forget previous provider and start again from the beginning
            {
                AuthProvider prev_provider = mCurrentProvider;

                mCurrentProvider = null;
                SwitchToNextAuthProvider();

                if (prev_provider != mCurrentProvider)
                {
                    prev_provider.Dispose();
                }
            }

            Authorize(callback);
        }
コード例 #6
0
        public static void Authorize(bool reset, Action succeess_callback, Action fail_callback = null)
        {
            if (reset && mInstance != null)             // forget previous provider and start again from the beginning
            {
                ClearLoginToken();

                AuthProvider prev_provider = mInstance.mCurrentProvider;

                mInstance.mCurrentProvider = null;
                mInstance.SwitchToNextAuthProvider();

                if (prev_provider != mInstance.mCurrentProvider)
                {
                    prev_provider.Dispose();
                }
            }

            Authorize(succeess_callback, fail_callback);
        }