Пожалуйста, дайте мне знать, если это невозможно... но, пытаясь реорганизовать мой личный API, я решил начать вызывать конечные точки Twitch через мой API, чтобы данные можно было объединить. Для этого я направляю пользователя на страницу авторизации и возвращаю токен носителя. Затем я передаю этот токен в свой API в заголовке. По какой-то причине я получаю 401, если вообще пытаюсь использовать этот токен из своего API. Я понятия не имею, почему, поскольку я не вижу причину в ответе. Токен работает от почтальона.
Вот пример запроса, который я делаю в своем API:
public async Task<bool> ValidateToken()
{
var response = await client.GetAsync("https://id.twitch.tv/oauth2/validate");
return response.StatusCode == HttpStatusCode.OK;
}
Перед вызовом метода проверки HttpClient создается следующим образом:
public TwitchService(IHeaderDictionary headers)
{
StringValues token;
StringValues clientId;
var hasToken = headers.TryGetValue("Authorization", out token);
var hasClientId = headers.TryGetValue("Client-id", out clientId);
client = new HttpClient();
client.DefaultRequestHeaders.Add("Accept", "application/json");
if (hasToken)
{
var authToken = token.ToString().Replace("Bearer", "");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authToken);
}
if (hasClientId)
{
client.DefaultRequestHeaders.Add("Client-ID", clientId.ToString());
}
}