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); }
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)); }
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 }); }
public UserController(ILogger <UserController> logger) { _logger = logger; _userSessionBO = new UserSessionBO(); }