public async Task <IActionResult> Login([FromBody] LoginUserRequestDTO request)
    {
        if (!ModelState.IsValid)
        {
            return(BadRequest(ModelState));
        }

        try
        {
            var result = await _signInManager.PasswordSignInAsync(request.Email, request.Password, false, false);

            if (result.Succeeded)
            {
                var user = await _userManager.FindByEmailAsync(request.Email);

                var token = _accountsService.CreateToken(user);

                return(Ok(new { UserId = user.Id, Token = token }));
            }

            return(Unauthorized());
        }
        catch (Exception exc)
        {
            return(BadRequest(exc.Message));
        }
    }
        public async Task <IActionResult> Login(LoginUserRequestDTO loginUserRequestDTO)
        {
            LoginUserValidator validator = new LoginUserValidator();
            var validationResult         = validator.Validate(loginUserRequestDTO);

            if (!validationResult.IsValid)
            {
                _logger.LogInformation("Not valid input.");
                ValidatorError validatorError = new ValidatorError();
                return(BadRequest(new {
                    message = validatorError.GetErrorMessagesAsString(validationResult.Errors)
                }));
            }

            var user = await _userRepo.LoginUser(loginUserRequestDTO.Email, loginUserRequestDTO.Password);

            if (user == null)
            {
                return(BadRequest(new {
                    message = "Invalid email or passowrd."
                }));
            }

            return(Ok(user));
        }
Exemple #3
0
 public static User ToUser(this LoginUserRequestDTO request)
 {
     return(new User
     {
         Email = request.Email,
         Password = request.Password
     });
 }
Exemple #4
0
 public OperationResult <User> Post(LoginUserRequestDTO request)
 {
     return(this.UserBusinessLogic.LoginUser(request.Email, request.Password));
 }