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); }
public IActionResult PostSignup([FromBody] SignupUserContract signup) { var user = _userService.AddUser(signup, out var authInfo); return(new JsonResult(authInfo)); }