public static HttpClient LynxApiClient(this IHttpClientFactory factory, UserSessionBO userSession = null)
        {
            HttpClient client = factory.CreateClient("lynx-api");

            if (userSession != null)
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userSession.Token);
            }

            return(client);
        }
Пример #2
0
        public async ValueTask <IActionResult> PostEndSessionAsync([FromHeader] int userSessionID)
        {
            LogoutUserResponse response = new LogoutUserResponse();

            try {
                response.LoggedOut = await UserSessionBO.EndSessionAsync(userSessionID);
            }
            catch (UnauthorizedAccessException inex) {
                return(BadRequest(new ErrorResponse(inex.Message)));
            }
            catch (Exception ex) {
                _logger.LogError(ex.Message);
                return(StatusCode(500, new ErrorResponse(ex.Message)));
            }

            return(Ok(response));
        }
Пример #3
0
        private UserSessionBO TokenBuilder(UserSessionBO session)
        {
            var user = p_Mapper.Map <UserBO>(session.UserData);

            string userData = JsonConvert.SerializeObject(user);

            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, user.ID.ToString(), ClaimValueTypes.String),
                new Claim(ClaimTypes.Name, user.FirstName, ClaimValueTypes.String),
                new Claim(ClaimTypes.Sid, session.SessionID.ToString(), ClaimValueTypes.String),
                new Claim(ClaimTypes.UserData, userData, ClaimValueTypes.String)
            };

            //Configuration
            var expireAt = p_DateTime.Now.AddDays(7); //7 Minutes

            var tokenHandler    = new JwtSecurityTokenHandler();
            var tokenKey        = Encoding.ASCII.GetBytes(p_Configuration["Jwt:Key"]);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject   = new ClaimsIdentity(claims),
                Issuer    = p_Configuration["Jwt:Issuer"],
                IssuedAt  = p_DateTime.Now,
                NotBefore = p_DateTime.Now,
                Expires   = expireAt,
                SigningCredentials
                    = new SigningCredentials(new SymmetricSecurityKey(tokenKey), JwtConstant.SecurityAlgo)
            };

            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var accessToken = tokenHandler.WriteToken(token);

            return(new UserSessionBO
            {
                Token = accessToken
            });
        }
Пример #4
0
 public UserController(ILogger <UserController> logger)
 {
     _logger        = logger;
     _userSessionBO = new UserSessionBO();
 }