API에 대한 호출 횟수를 최소화하기 위해 옵션 2과 함께 가기로 결정했습니다. 나는 다음 JWT가 만료 될 경우도 확인하는 HttpClient를 팩토리 메소드와 기본 컨트롤러 클래스를 생성 :
세션 내 웹 API에서 새로 고침 토큰 JWT-토큰을 저장하는
public HttpClient GetHttpClient(string baseAdress)
{
var client = new HttpClient();
client.BaseAddress = new Uri(baseAdress);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string token;
if (Session["access_token"] != null)
{
var jwthandler = new JwtSecurityTokenHandler();
var jwttoken = jwthandler.ReadToken(Session["access_token"] as string);
var expDate = jwttoken.ValidTo;
if (expDate < DateTime.UtcNow.AddMinutes(1))
token = GetAccessToken().Result;
else
token = Session["access_token"] as string;
}
else
{
token = GetAccessToken().Result;
}
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
Session["access_token"] = token;
return client;
}
* * 왜 당신은 세션에 저장합니까? –