public async Task<ExchangeTokenResponse> ExchangeGithubToken(ExchangeTokenRequest request)
{
var httpClient = _httpClientFactory.CreateClient("Github");
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", request.Token);
var response = await httpClient.GetAsync("/user");
if (!response.IsSuccessStatusCode) throw new NotImplementedException();
var content = await response.Content.ReadAsStringAsync();
var user = JsonSerializer.Deserialize<GithubUser>(content);
var token = _jwtTokenGenerator.GenerateToken(user.Id.ToString(), user.Login);
return new ExchangeTokenResponse(token);
}
public async Task<ExchangeTokenResponse> ExchangeGithubToken(ExchangeTokenRequest request)
{
var httpClient = _httpClientFactory.CreateClient("Github");
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", request.Token);
var response = await httpClient.GetAsync("/user");
if (!response.IsSuccessStatusCode) throw new NotImplementedException();
var content = await response.Content.ReadAsStringAsync();
var user = JsonSerializer.Deserialize<GithubUser>(content);
var token = _jwtTokenGenerator.GenerateToken(user.Id.ToString(), user.Login);
return new ExchangeTokenResponse(token);
}