public void DataExtensions_CreatePassword_Passwords_Match()
        {
            string password1 = "password1";
            string password2 = "password1";

            DataExtensions.CreatePasswordHash(password1, out byte[] hash, out byte[] salt);
            bool result = DataExtensions.IsPasswordCorrect(password2, hash, salt);

            Assert.IsTrue(result);
        }
        public async Task <LogInResult> SignInAsync(SignInModel model)
        {
            var user = await _userRepository.FindOneAsync(r => r.Email == model.Email);

            if (user == null)
            {
                throw model.Email.EmailNotFoundException();
            }

            if (!DataExtensions.IsPasswordCorrect(model.Password, user.PasswordHash, user.PasswordSalt))
            {
                throw user.PasswordIsIncorrectException();
            }

            var userModel = _mapper.Map <User, UserModel>(user);

            return(new LogInResult
            {
                User = userModel,
                Token = DataExtensions.GenerateToken(user, _settings.SecretKey)
            });
        }
Example #3
0
        public async Task <UserModel> ChangeUserPasswordAsync(ChangePasswordModel model)
        {
            var user = await _userRepository.FindOneAsync(t => t.Email == model.Email);

            if (user == null)
            {
                throw model.Email.EmailNotFoundException();
            }

            if (!DataExtensions.IsPasswordCorrect(model.OldPassword, user.PasswordHash, user.PasswordSalt))
            {
                throw user.PasswordIsIncorrectException();
            }

            DataExtensions.CreatePasswordHash(model.NewPassword, out byte[] newPassHash, out byte[] newSaltHash);

            user.PasswordHash = newPassHash;
            user.PasswordSalt = newSaltHash;

            var updatedUser = await _userRepository.InsertOrUpdateAsync(user, user.CreatedBy);

            return(_mapper.Map <User, UserModel>(updatedUser));
        }