如果这不可能,请告诉我……但为了重构我的个人 API,我决定开始通过我的 API 调用 Twitch 端点,以便可以合并数据。为此,我将用户引导至身份验证页面并取回不记名令牌。然后,我将该令牌传递给我在标头中的 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());
}
}