Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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"
            });
        }
Esempio n. 3
0
        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"
            }));
        }