Example #1
0
        public void Test_GeneratingJWTToken()
        {
            // Arrange
            var config = InitConfiguration();

            //var configMock = new Mock<IConfiguration>();

            var jwtService = new JwtTokenService(config);

            // Act
            var token = jwtService.GenerateJWTToken("Alex");

            // Assert
            Assert.True(token.Length > 32);
        }
        public async Task <IActionResult> Login([FromBody] LoginRequestModel loginRequestModel)
        {
            try
            {
                var user = await _userManager.FindByNameAsync(loginRequestModel.UserName);

                if (user == null)
                {
                    return(BadRequest(new ApiResponseBadRequestResult()
                    {
                        ErrorMessage = $"Invalid Credentials. Please try again"
                    }));
                }


                var result = await _signInManager.CheckPasswordSignInAsync(user, loginRequestModel.Password, false);

                if (!result.Succeeded)
                {
                    return(BadRequest(new ApiResponseBadRequestResult()
                    {
                        ErrorMessage = $"Invalid Credentials. Please try again"
                    }));
                }

                var token         = JwtTokenService.GenerateJWTToken(user, _configuration);
                var responseModel = _mapper.Map <LoginResponseModel>(user);
                responseModel.Token = token;
                return(Ok(new ApiResponseOKResult()
                {
                    Data = responseModel
                }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Failed to register new user");
                return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponseFailure()
                {
                    ErrorMessage = "Failed to process login request"
                }));
            }
        }