Twitch API OAuth

Пожалуйста, дайте мне знать, если это невозможно... но, пытаясь реорганизовать мой личный 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());
    }
}

person sabo    schedule 01.09.2020    source источник


Ответы (1)


Получается, что заголовок авторизации удаляется HttpClient, и это сделано намеренно. Следующая ссылка дает хорошее объяснение этого: Заголовок авторизации теряется при перенаправлении

person sabo    schedule 04.09.2020