private string CodifyToken(ClaimsIdentity claimsIdentity) { var tokenHandler = new JwtSecurityTokenHandler(); var currentIssuer = $"{_aspNetUser.GetHttpContext().Request.Scheme}://{_aspNetUser.GetHttpContext().Request.Host}"; var key = _jwksService.GetCurrent(); var token = tokenHandler.CreateToken(new SecurityTokenDescriptor { Issuer = currentIssuer, Subject = claimsIdentity, Expires = DateTime.UtcNow.AddHours(1), SigningCredentials = key }); return(tokenHandler.WriteToken(token)); }
public async Task ConnectAccount(UserLoginTokenResponse userLoginTokenResponse) { var token = GetFormatedToken(userLoginTokenResponse.AccessToken); var claims = new List <Claim>(); claims.Add(new Claim("JWT", userLoginTokenResponse.AccessToken)); claims.Add(new Claim("RefreshToken", userLoginTokenResponse.RefreshToken)); claims.AddRange(token.Claims); var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var authProperties = new AuthenticationProperties { ExpiresUtc = DateTimeOffset.UtcNow.AddHours(8), IsPersistent = true }; await _authenticationService.SignInAsync( _aspNetUser.GetHttpContext(), CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties); }
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var authorizationHeader = _user.GetHttpContext().Request.Headers["Authorization"]; if (!string.IsNullOrEmpty(authorizationHeader)) { request.Headers.Add("Authorization", new List <string>() { authorizationHeader }); } var token = _user.GetUserToken(); if (token != null) { request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); } return(base.SendAsync(request, cancellationToken)); }