Ejemplo n.º 1
0
        public UserEntity AddUser(SignupUserContract user, out AuthInfo authInfo)
        {
            if (!string.IsNullOrEmpty(user.Email.Trim()) && EmailExistsAsync(user.Email).Result)
            {
                authInfo = null;
                return(null);
            }

            var newId        = Guid.NewGuid();
            var expiration   = DateTime.UtcNow.AddDays(ExpirationDays);
            var bearerToken  = TokenGenerator.GenerateToken(newId, _configuration["Security:SecretKey"], expiration, null, _configuration["Security:EncryptionKey"]);
            var passwordHash = CredentialUtility.HashPassword(user.Password);

            var addUser = new UserEntity
            {
                UserId         = newId,
                Email          = user.Email,
                EmailCandidate = user.Email,
                EmailConfirmed = false,
                PasswordHash   = passwordHash,
                BearerToken    = bearerToken,
                DateJoined     = DateTimeOffset.UtcNow
            };

            authInfo = new AuthInfo
            {
                Token      = bearerToken,
                Expiration = expiration
            };

            _userRepository.AddAsync(addUser).Wait();
            return(addUser);
        }
Ejemplo n.º 2
0
        public IActionResult PostSignup([FromBody] SignupUserContract signup)
        {
            var user = _userService.AddUser(signup, out var authInfo);

            return(new JsonResult(authInfo));
        }