コード例 #1
0
        /// <summary>
        /// Signs up a user
        /// </summary>
        /// <param name="type">Type of signup</param>
        /// <param name="identifier">Phone or Email</param>
        /// <param name="password"></param>
        /// <param name="signUpOptions">Object containing redirectTo and optional user metadata (data)</param>
        /// <returns></returns>
        public static async Task <Session> SignUp(SignUpType type, string identifier, string password, StatelessClientOptions options, SignUpOptions signUpOptions = null)
        {
            try
            {
                var     api     = GetApi(options);
                Session session = null;
                switch (type)
                {
                case SignUpType.Email:
                    session = await api.SignUpWithEmail(identifier, password, signUpOptions);

                    break;

                case SignUpType.Phone:
                    session = await api.SignUpWithPhone(identifier, password, signUpOptions);

                    break;
                }

                if (session?.User?.ConfirmedAt != null)
                {
                    return(session);
                }

                return(null);
            }
            catch (RequestException ex)
            {
                throw ExceptionHandler.Parse(ex);
            }
        }
コード例 #2
0
        /// <summary>
        /// Signs up a user
        /// </summary>
        /// <param name="type"></param>
        /// <param name="identifier"></param>
        /// <param name="password"></param>
        /// <param name="options">Object containing redirectTo and optional user metadata (data)</param>
        /// <returns></returns>
        public async Task <Session> SignUp(SignUpType type, string identifier, string password, SignUpOptions options = null)
        {
            await DestroySession();

            try
            {
                Session session = null;
                switch (type)
                {
                case SignUpType.Email:
                    session = await api.SignUpWithEmail(identifier, password, options);

                    break;

                case SignUpType.Phone:
                    session = await api.SignUpWithPhone(identifier, password, options);

                    break;
                }

                if (session?.User?.ConfirmedAt != null)
                {
                    await PersistSession(session);

                    StateChanged?.Invoke(this, new ClientStateChanged(AuthState.SignedIn));

                    return(CurrentSession);
                }

                return(session);
            }
            catch (RequestException ex)
            {
                throw ExceptionHandler.Parse(ex);
            }
        }