抽搐 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
如果这不可能,请告诉我...但为了重构我的个人 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