/// <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); } }
/// <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); } }