public async Task <bool> ResetUserPassword(ForgotPasswordRequest request) { var user = await _userRepository.GetUserByMailThrowAsync(request.Email); var newPassword = PasswordGenerator.GenerateRandomPassword(8); var passTuple = PassHasherGenerator.HashPassword(newPassword, null); user.HashedPassword = passTuple.Item2; user.Salt = passTuple.Item1; MailSender.SendMailAfterNewPassword(request.Email, newPassword); await _userRepository.UpdateUser(user); return(true); }
public async Task <bool> ChangeUserPassword(ChangePasswordRequest changePasswordRequest) { var user = _userRepository.getThisUser(); if (changePasswordRequest.NewPassword == changePasswordRequest.ConfirmNewPassword) { var passTuple = PassHasherGenerator.HashPassword(changePasswordRequest.NewPassword, null); user.HashedPassword = passTuple.Item2; user.Salt = passTuple.Item1; await _userRepository.UpdateUser(user); return(true); } throw new ApiException(new Error { Message = "Parolalar eşleşmiyor lütfen kontrol ediniz" }); }
public async Task <bool> CreateUser(CreateUserRequest request) { var isExist = await _userRepository.GetUserByMailAsync(request.Email); if (isExist != null) { _logger.LogInformation("Girilen mail ile kayıt zaten mevcut"); throw new ApiException(new Error { Message = "Bu e-mail hesabı ile kayıtlı bir kullanıcı sistemde mevcut" }); } var passTuple = PassHasherGenerator.HashPassword(request.Password, null); var newUser = new User(request, passTuple); await _userRepository.Create(newUser); return(true); }
public async Task <User> LoginUserAsync(LoginRequest request) { var user = await _context.Users.Where(U => U.Email == request.Email).SingleOrDefaultAsync(); if (user == null) { _logger.LogInformation($"Girilen mail veya kullanıcı adı ile kayıt bulunamadı. mail, username = {request.Email}"); throw new ApiException(new Error { Message = "Böyle bir kullanıcı mevcut değil" }); } var hashedPassword = PassHasherGenerator.HashPassword(request.Password, user.Salt).Item2; return(hashedPassword == user.HashedPassword ? user : throw new ApiException(new Error { Message = "Girilen parola doğru değil" })); }