gpt4 book ai didi

c# - RestSharp OAuth2 承载身份验证因访问被拒绝而失败

转载 作者:行者123 更新时间:2023-12-02 15:49:57 25 4
gpt4 key购买 nike

我已经实现了自己的自定义IAuthenticator,称为OAuth2BearerAuthenticator,它基本上接受ClientIdClientSecret以及之前发出任何请求时,它都会检查是否具有有效的承载 token - 如果没有,它将使用客户端凭据消失并“刷新” token ,然后再继续原始请求。

此自定义验证器的 Authenticate 方法包含以下内容:

public void Authenticate(IRestClient client, IRestRequest request)
{
if (!bearerTokenExpiration.HasValue || bearerTokenExpiration.Value < DateTime.Now)
{
RefreshBearerToken();
}

if (request.Parameters.Any(p => p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
{
return;
}

request.AddHeader("Authorization", string.Format("Bearer {0}", bearerToken));
}

我已验证其生成的不记名 token 有效 - 我可以使用 DHC(Chrome REST 扩展)中的相同不记名 token 授权 header 成功地从我尝试访问的 API 请求数据

我还验证了它不会从 if(任何授权参数) 语句提前返回。

但是,RestSharp 失败并返回响应“HTTP Basic:访问被拒绝。\n”

我不知道它是否相关,但响应还包含一个 WWW-Authenticate header ,其值为 Basic Realm=\"Web Password\"

非常感谢任何帮助。谢谢。

最佳答案

此外,对于不记名 token ,您可以使用现有的身份验证器之一:

client.Authenticator = new JwtAuthenticator(yourAccessToken);

或者:

client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(yourAccessToken, "Bearer");

关于c# - RestSharp OAuth2 承载身份验证因访问被拒绝而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29893750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com