예제 #1
0
 public User(UserRegisterRequestDTO v)
 {
     FirstName = v.FirstName;
     LastName  = v.LastName;
     Username  = v.Username;
     Password  = v.Password;
 }
예제 #2
0
        public ResponseResult <UserRegisterResponseDTO> UserRegister(UserRegisterRequestDTO request)
        {
            UserRegisterResponseDTO response = new UserRegisterResponseDTO();
            var app = OAuthAppCache.Get(request.Appid);

            if (app == null)
            {
                return(Fail <UserRegisterResponseDTO>("无效的应用ID", "0400"));
            }
            //先注册,再登录发放TOKEN
            RegisterProvider provider = new RegisterProvider(request.UserCode, request.Password, request.SmsCode, request.RefereeCode);

            if (!provider.Register())
            {
                return(Fail <UserRegisterResponseDTO>(provider.PromptInfo.CustomMessage));
            }
            LoginProvider loginProvider = new LoginProvider(request.UserCode, request.Password, "basic");

            if (loginProvider.Login(request.Client.Type, request.Client.System, request.Client.DeviceId, request.Client.IP, request.Client.SessionId, request.Client.Version, app.Id))
            {
                response.RegisterResult = true;
                response.Expires        = loginProvider.OAuthUser.Expire_In;
                response.Openid         = loginProvider.OAuthUser.Open_Id;
                response.RefreshExpires = loginProvider.OAuthUser.Refresh_Expire_In;
                response.RefreshToken   = loginProvider.OAuthUser.Refresh_Token;
                response.Token          = loginProvider.OAuthUser.Token;
                response.UserCode       = loginProvider.User.UserCode;
            }
            if (!response.RegisterResult)
            {
                Log.Info(string.Concat("注册成功,登录失败!", Environment.NewLine, loginProvider.PromptInfo.MessageStack));
            }
            return(Success(response));
        }
예제 #3
0
        public async Task <ActionResult> Register([FromBody] UserRegisterRequestDTO userDto)
        {
            try
            {
                await _userService.Create(userDto);

                return(Ok());
            }
            catch (ApplicationException ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
예제 #4
0
        public async Task Create(UserRegisterRequestDTO userDto)
        {
            // Generate verification code
            string code = Guid.NewGuid().ToString("n").Substring(0, 8);

            while (_context.UnverifiedUser.Any(x => x.VerificationCode == code))
            {
                code = Guid.NewGuid().ToString("n").Substring(0, 8);
            }

            User user = new User
            {
                UserName       = userDto.Username,
                Email          = userDto.Email,
                FirstName      = userDto.FirstName,
                LastName       = userDto.LastName,
                PhoneNumber    = userDto.PhoneNumber,
                NumberOfBooks  = 0,
                Points         = 0,
                EmailConfirmed = false,
                Role           = "Member"
            };

            var resultCreate = await _userManager.CreateAsync(user, userDto.Password);

            var resultRole = await _userManager.AddToRoleAsync(user, user.Role);

            // Unverified user
            if (resultCreate.Succeeded && resultRole.Succeeded)
            {
                UnverifiedUser unverifiedUser = new UnverifiedUser
                {
                    UserId           = user.Id,
                    VerificationCode = code
                };

                await _context.UnverifiedUser.AddAsync(unverifiedUser);

                await _context.SaveChangesAsync();

                _logger.LogInformation("User created a new account with password.");
                await _signInManager.SignInAsync(user, isPersistent : false);

                // Send email
                SendVerificationEmail(user, code);
            }
            else
            {
                throw new EntityInvalidationException(string.Join(", ", resultCreate.Errors.Select(x => "Code " + x.Code + " Description" + x.Description)));
            }
        }
예제 #5
0
 public override Task <UserRegisterResponseDTO> UserRegister(UserRegisterRequestDTO request, ServerCallContext context)
 {
     return(Task.Run(() =>
     {
         UserRegisterResponseDTO response = new UserRegisterResponseDTO();
         var app = OAuthAppCache.Get(request.Appid);
         if (app == null)
         {
             response.RetCode = "0400";
             response.RetMsg = "无效的应用ID";
             return response;
         }
         //先注册,再登录发放TOKEN
         RegisterProvider provider = new RegisterProvider(request.UserCode, request.Password, request.SmsCode, request.RefereeCode);
         if (!provider.Register())
         {
             response.RetCode = xUtils.TransformFailRetCode(provider.PromptInfo.ResultType);
             response.RetMsg = provider.PromptInfo.CustomMessage;
             return response;
         }
         LoginProvider loginProvider = new LoginProvider(request.UserCode, request.Password, "basic");
         if (loginProvider.Login(request.Client.Type, request.Client.System, request.Client.DeviceId, request.Client.Ip, request.Client.SessionId, request.Client.Version, app.Id))
         {
             response.Data = new UserRegisterResponseDTO.Types.Result
             {
                 Expires = loginProvider.OAuthUser.Expire_In,
                 Openid = loginProvider.OAuthUser.Open_Id,
                 RefreshExpires = loginProvider.OAuthUser.Refresh_Expire_In,
                 RefreshToken = loginProvider.OAuthUser.Refresh_Token,
                 Token = loginProvider.OAuthUser.Token,
                 UserCode = loginProvider.User.UserCode
             };
         }
         if (response.Data == null)
         {
             Log.Info(string.Concat("注册成功,登录失败!", Environment.NewLine, loginProvider.PromptInfo.MessageStack));
         }
         response.RetCode = "0000";
         response.RetMsg = "ok";
         return response;
     }));
 }
예제 #6
0
 public IActionResult Register(UserRegisterRequestDTO user)
 {
     _userService.Create(user);
     return(Ok("{}"));
 }
예제 #7
0
 public void Create(UserRegisterRequestDTO model)
 {
     _userRepository.Create(new User(model));
     _userRepository.Save();
 }