/// <summary>
        /// 通过手机号注册
        /// </summary>
        /// <param name="phone">手机号</param>
        /// <param name="code">手机号验证码</param>
        /// <param name="password">密码</param>
        /// <param name="profile">用户资料</param>
        /// <param name="forceLogin">强制登录</param>
        /// <param name="generateToken">自动生成 token</param>
        /// <param name="cancellationToken"></param>
        /// <returns>User</returns>
        public async Task<User> RegisterByPhoneCode(
            string phone,
            string code,
            string password = null,
            RegisterProfile profile = null,
            bool forceLogin = false,
            bool generateToken = false,
            CancellationToken cancellationToken = default)
        {
            var param = new RegisterByPhoneCodeParam()
            {
                Input = new RegisterByPhoneCodeInput()
                {
                    Phone = phone,
                    Code = code,
                    Password = Encrypt(password),
                    Profile = profile,
                    ForceLogin = forceLogin,
                    GenerateToken = generateToken,
                }
            };

            var res = await Request<RegisterByPhoneCodeResponse>(param.CreateRequest(), cancellationToken);
            CurrentUser = res.Result;
            return res.Result;
        }
示例#2
0
 public void Register(bool isTestProfile, string username, string password, string firstName, string lastName, string email, string parentEmail, string languagePreference, string assertedCountry, DateTime?dateOfBirth, IEnumerable <KeyValuePair <IMarketingItem, bool> > marketingAgreements, IEnumerable <ILegalDocument> acceptedLegalDocuments, Action <IRegisterResult> callback)
 {
     try
     {
         database.ClearServerTimeOffsetMillis();
         List <Disney.Mix.SDK.Internal.GuestControllerDomain.MarketingItem> marketing = (from p in marketingAgreements
                                                                                         select new Disney.Mix.SDK.Internal.GuestControllerDomain.MarketingItem
         {
             code = p.Key.Id,
             subscribed = p.Value
         }).ToList();
         object obj;
         if (!dateOfBirth.HasValue)
         {
             obj = new BaseRegisterProfile();
         }
         else
         {
             RegisterProfile registerProfile = new RegisterProfile();
             registerProfile.dateOfBirth = dateOfBirth.Value.ToString("yyyy-MM-dd");
             obj = registerProfile;
         }
         BaseRegisterProfile baseRegisterProfile = (BaseRegisterProfile)obj;
         baseRegisterProfile.testProfileFlag    = (isTestProfile ? "Y" : "N");
         baseRegisterProfile.username           = username;
         baseRegisterProfile.firstName          = firstName;
         baseRegisterProfile.lastName           = lastName;
         baseRegisterProfile.email              = email;
         baseRegisterProfile.parentEmail        = parentEmail;
         baseRegisterProfile.languagePreference = languagePreference;
         baseRegisterProfile.region             = assertedCountry;
         BaseRegisterProfile profile         = baseRegisterProfile;
         List <string>       legalAssertions = (from doc in acceptedLegalDocuments
                                                select doc.Id).ToList();
         RegisterRequest registerRequest = new RegisterRequest();
         registerRequest.password        = password;
         registerRequest.profile         = profile;
         registerRequest.marketing       = marketing;
         registerRequest.legalAssertions = legalAssertions;
         RegisterRequest        request = registerRequest;
         IGuestControllerClient guestControllerClient = guestControllerClientFactory.Create("NoSwid");
         guestControllerClient.Register(request, delegate(GuestControllerResult <LogInResponse> r)
         {
             HandleRegisterSuccess(r, marketing, callback);
         });
     }
     catch (CorruptionException arg)
     {
         logger.Fatal("Corruption detected during registration: " + arg);
         callback(new RegisterCorruptionDetectedResult());
     }
     catch (Exception arg2)
     {
         logger.Critical("Unhandled exception: " + arg2);
         callback(new RegisterResult(success: false, null, null));
     }
 }
示例#3
0
        /// <summary>
        /// 通过用户名注册
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="profile">用户资料</param>
        /// <param name="forceLogin">强制登录</param>
        /// <param name="generateToken">自动生成 token</param>
        /// <param name="cancellationToken"></param>
        /// <returns>User</returns>
        public async Task <User> RegisterByUsername(
            string username,
            string password,
            RegisterProfile profile             = null,
            bool forceLogin                     = false,
            bool generateToken                  = false,
            CancellationToken cancellationToken = default)
        {
            var param = new RegisterByUsernameParam(
                new RegisterByUsernameInput(username, Encrypt(password))
            {
                Profile       = profile,
                ForceLogin    = forceLogin,
                GenerateToken = generateToken,
            }
                );

            var res = await Request <RegisterByUsernameResponse>(param.CreateRequest(), cancellationToken);

            User = res.Result;
            return(res.Result);
        }