public UserWithToken Register(string loginName, string password) { var user = _userRepository.TryFindByLogin(loginName); if (user != null) { throw new UsernameAlreadyInUseException(loginName); } var hashedPassword = _passwordHasher.Hash(password); user = new User(Guid.NewGuid(), loginName, hashedPassword); _userRepository.CreateUser(user); RecurringJob.AddOrUpdate($"{user.Id}", () => _backgroundStatisticGenerator.UpdateUserFacts(user.Id), _configuration.GetValue <string>("CronCronRecalculateStatisticPeriod")); return(new UserWithToken(user, _jwtIssuer.GenerateToken(user))); }
public IActionResult Authenticate([FromBody] LoginRequest request) { var user = _userService.LoginUser(request.Login, request.Password); var token = _jwtIssuer.GenerateToken(user); var response = new LoginResponse(token); return(Ok(response)); }
public IActionResult LoginUser([FromBody] LoginRequest loginRequest) { var optionUser = _userService.LogInByCredentials(loginRequest.Username, loginRequest.Password); return(optionUser.Match <IActionResult>( Some: user => { var token = _jwtIssuer.GenerateToken(user); var userCreateResponse = new UserCreateResponse(token); return Ok(userCreateResponse); }, None: Ok(new { errors = new { passwordError = "Invalid password.", commonError = "There are errors with some fields bellow." } }))); }