Пример #1
0
        public async Task <IActionResult> Signup([FromBody] UserResource userRsc)
        {
            if (userRsc == null)
            {
                return(BadRequest("Invalid request"));
            }

            var suValidation = await suValidator.IsValidAsync(userRsc);

            if (!suValidation.Success)
            {
                return(BadRequest(suValidation.ErrorMessage));
            }

            User newUser = this.mapper.Map <UserResource, User>(userRsc);

            var salt = HashGenerator.GenerateSaltBytes();
            var hash = HashGenerator.GenerateSaltedHash(HashGenerator.EncodedStringToByteArray(userRsc.Password), salt);

            newUser.Salt     = HashGenerator.ByteArrayToString(salt);
            newUser.Password = HashGenerator.ByteArrayToString(hash);

            userRepo.Create(newUser);
            uow.Complete();

            return(Ok());
        }