public async Task <object> Register([FromBody] UserRegisterModel userRegister) { ResponseMessageModel message; if (userRegister.Password == null || userRegister.Password.Length <= 0) { userRegister.Password = PasswordGenerator.GenerateRandomPassword(); userRegister.RePassword = userRegister.Password; } if (userRegister.Password != userRegister.RePassword) { message = new ResponseMessageModel { Code = MessageCode.DATA_VALIDATE_ERROR, ErrorMessage = "Mật khẩu không khớp nhau" }; return(message); } var user = new ApplicationUser { Id = Guid.NewGuid(), UserName = userRegister.UserName, PersonalId = userRegister.PersonalId, PasswordChanged = false }; IdentityResult result = await _userManager.CreateAsync(user, userRegister.Password); if (result.Succeeded) { var userInfo = new UserRegistedModel { UserName = user.UserName, Id = user.Id, Password = userRegister.Password }; message = new ResponseMessageModel { Code = MessageCode.SUCCESS, Data = userInfo }; return(message); } //errors occur string errorMessage = ""; foreach (var error in result.Errors) { errorMessage += error.Description + "\r\n"; } message = new ResponseMessageModel { Code = MessageCode.SQL_ACTION_ERROR, ErrorMessage = errorMessage }; return(message); }
public async Task <object> ResetPassword(Guid userId) { ResponseMessageModel message; var user = await _userManager.FindByIdAsync(userId.ToString()); if (user == null) { message = ResponseMessageModel.CreateResponse( MessageCode.OBJECT_NOT_FOUND, "Không tìm thấy user"); return(message); } //generate new password string newPassword = PasswordGenerator.GenerateRandomPassword(); //generate token and reset password string token = await _userManager.GeneratePasswordResetTokenAsync(user); var result = await _userManager.ResetPasswordAsync(user, token, newPassword); if (!result.Succeeded) { message = ResponseMessageModel.CreateResponse( MessageCode.SQL_ACTION_ERROR, "Không thể khởi tạo password mới"); return(message); } //reset success var userRegistedModel = new UserRegistedModel { UserName = user.UserName, Id = user.Id, Password = newPassword }; message = ResponseMessageModel.CreateResponse(userRegistedModel); return(message); }