Example #1
0
        public IActionResult ValidateLogin([FromBody] LoginRequestDto loginRequest)
        {
            try
            {
                _log.Info($"ValidateLogin Callling: {loginRequest?.LoginName}");

                var user = _userViewRepository.ValidateLogin(loginRequest.LoginName, loginRequest.Password);
                if (user == null)
                {
                    return(StatusCode(401, new ErrorModel {
                        HttpStatusCode = 401, Message = "Invalid UserName and Password"
                    }));
                }

                var userDto = _mapper.Map <UserDto>(user);
                return(Ok(userDto));
            }
            catch (Exception ex)
            {
                _log.Error($"Error in ValidateLogin - ", ex);
                return(StatusCode(500, new ErrorModel {
                    HttpStatusCode = 500, Message = "Internal Server Error"
                }));
            }
        }
Example #2
0
        public IActionResult Login([FromBody] LoginRequestDto model)
        {
            var user = _userViewRepository.ValidateLogin(model.LoginName, model.Password);

            if (user != null)
            {
                var role       = _roleViewRepository.GetRoleById(user.RoleId);
                var authClaims = new List <Claim>
                {
                    new Claim(ClaimTypes.Name, user.LoginName),
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                    new Claim(ClaimTypes.Role, role.RoleName)
                };

                var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Secret"]));

                var token = new JwtSecurityToken(
                    //issuer: _configuration["JWT:ValidIssuer"],
                    //audience: _configuration["JWT:ValidAudience"],
                    expires: DateTime.Now.AddHours(10),
                    claims: authClaims,
                    signingCredentials: new SigningCredentials(authSigningKey, SecurityAlgorithms.HmacSha256Signature)
                    );

                var userDto = _mapper.Map <UserDto>(user);
                userDto.Token           = new JwtSecurityTokenHandler().WriteToken(token);
                userDto.TokenExpiration = token.ValidTo;
                userDto.LastLogin       = DateTime.Now;

                return(Ok(userDto));
            }

            return(Unauthorized());
        }