抽搐 API OAuth

Twitch API OAuth

如果这不可能,请告诉我...但为了重构我的个人 API 我决定开始通过我的 API 调用 Twitch 端点,以便可以合并数据.为此,我将用户引导至授权页面并取回不记名令牌。然后我将该令牌传递给 header 中的 API。出于某种原因,如果我尝试使用我的 API 中的那个令牌,我会收到 401。我不知道为什么,因为我无法在回复中查看原因。令牌由邮递员提供。

这是我在 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());
    }
}

事实证明,身份验证 header 已被 HttpClient 删除,这是设计使然。下面的link对此做了很好的解释:Authorization header is lost on redirect