Exemplo n.º 1
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());
        }
Exemplo n.º 2
0
        public IActionResult GetUserInfo(string loginName)
        {
            try
            {
                _log.Info($"GetUserInfo Callling: {loginName}");

                var obj = _userViewRepository.GetUserById(loginName);
                if (obj == null)
                {
                    return(StatusCode(401, new ErrorModel {
                        HttpStatusCode = 401, Message = "User Not Found"
                    }));
                }
                var userDto = _mapper.Map <UserDto>(obj);

                if (!string.IsNullOrWhiteSpace(userDto.GroupName))
                {
                    userDto.RoleCode = userDto.GroupName;
                }
                else if (!string.IsNullOrWhiteSpace(userDto.DealerCode))
                {
                    userDto.RoleCode = userDto.DealerCode;
                }
                else if (!string.IsNullOrWhiteSpace(userDto.ClientCode))
                {
                    userDto.RoleCode = userDto.ClientCode;
                }

                userDto.RoleName = _roleViewRepository.GetRoleById(userDto.RoleId)?.RoleName;

                return(Ok(userDto));
            }
            catch (Exception ex)
            {
                _log.Error($"Error in GetUserInfo - ", ex);
                return(StatusCode(500, new ErrorModel {
                    HttpStatusCode = 500, Message = "Internal Server Error"
                }));
            }
        }