public async Task <IActionResult> Post([FromBody] RegisterRequestModel model) { model.RoleName = "GooiosVip0"; if (ModelState.IsValid) { //check the verification code var verification = await _verificationProxy.GetVerification(BizCode.Register, model.Mobile); if (verification == null) { return(new BadRequestObjectResult("验证码不正确.")); } if (verification.Code != model.VerificationCode) { return(new BadRequestObjectResult("验证码不正确.")); } var role = await _roleManager.FindByNameAsync(model.RoleName); if (role == null) { return(new BadRequestObjectResult("找不到指定角色.")); } var user = new ApplicationUser { UserName = model.Mobile, PhoneNumber = model.Mobile }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await _verificationProxy.SetVerificationUsed(verification); var r = await _userManager.AddToRoleAsync(user, model.RoleName); return(new OkResult()); } else { return(new BadRequestObjectResult("创建用户失败.")); } } else { var errors = ModelState.Values.Select(o => o.Errors); var messageBuilder = new StringBuilder(); foreach (var error in errors) { string errMsg = string.Join(",", error.Select(o => o.ErrorMessage)); messageBuilder.Append(errMsg); messageBuilder.Append(";"); } return(new BadRequestObjectResult($"参数错误: {messageBuilder.ToString()}")); } }
public async Task <CookAppUserDto> VerifyCookAppUserByVerifyCode(string userName, string code) { var obj = _cookappUserRepo.GetFiltered(o => o.UserName == userName).FirstOrDefault(); //_verificationProxy.Test(1); if (obj != null) { var verification = await _verificationProxy.GetVerification(BizCode.Login, userName); if (verification == null) { return(null); } if (verification.Code != code) { return(null); } await _verificationProxy.SetVerificationUsed(verification); ; return(MapperProvider.Mapper.Map <CookAppUserDto>(obj)); } else { var verification = await _verificationProxy.GetVerification(BizCode.Login, userName); if (verification == null) { return(null); } if (verification.Code != code) { return(null); } var user = CookAppUserFactory.CreateInstance(userName, Guid.NewGuid().ToString().Substring(0, 8), userName, ""); _cookappUserRepo.Add(user); _dbUnitOfWork.Commit(); await _verificationProxy.SetVerificationUsed(verification); return(MapperProvider.Mapper.Map <CookAppUserDto>(user)); } }
public async Task <IActionResult> ResetPassword([FromBody] ResetPasswordModel model) { if (model.ConfirmPassword != model.NewPassword) { return(new BadRequestObjectResult("密码与确认密码不匹配.")); } var verification = await _verificationProxy.GetVerification(BizCode.ForgetPassword, model.Mobile); if (verification == null) { return(new BadRequestObjectResult("所提供的验证码不正确.")); } if (verification.Code != model.VerificationCode) { return(new BadRequestObjectResult("验证码不正确.")); } var user = await _userManager.FindByNameAsync(model.Mobile); if (user == null) { new BadRequestObjectResult("指定的用户不存在."); } var token = await _userManager.GeneratePasswordResetTokenAsync(user); var result = await _userManager.ResetPasswordAsync(user, token, model.NewPassword); if (result.Succeeded) { await _verificationProxy.SetVerificationUsed(verification); return(new OkResult()); } else { return(new BadRequestObjectResult("重置密码失败.")); } return(new OkResult()); }