使用 RESTSHARP 的 OAuth 2 身份验证不起作用

OAuth 2 authentication with RESTSHARP doesn't work

我正在尝试使用 Restsharp(版本 105,也尝试了最新的 106)连接到 REST API。身份验证方法是 OAuth 2

我从身份验证服务获得了一个令牌,但我无法使用它。 输出请求总是跳过授权参数。

请求应包括参数,如 授权:不记名令牌1235

POST /wares/ HTTP/1.1

HTTP headers:
Accept: application/json
User-Agent: RestSharp/105.0.1.0
Host: localhost
Authorization: Bearer token1235
Accept-Encoding: gzip, deflate

Request body:

但是请求中的授权行每次都会被跳过。 我尝试了各种方法,但完全没有成功。 Restsharp 正在操纵我指定的参数。 如何在 header 中包含带有不记名令牌的授权参数? 猜想这一定是相当标准的程序。

我尝试了在另一个有类似问题的线程中建议的许多可能性,但根本没有成功。 例如,我希望其中之一应该起作用,但它不起作用:

  1. client.Authenticator = new OAuth2UriQueryParameterAuthenticator(AccessToken); // 这确实在请求 body 中写入了 'oauth_token=token12345' 文本,仅此而已

  2. request.AddParameter("Authorization", "Bearer " + AccessToken, ParameterType.HttpHeader); // 这确实在请求中不包含任何内容,根本没有参数

  3. request.AddHeader("Authorization","Bearer " + AccessToken); // 这确实在请求中不包含任何内容,根本没有参数

根据您期望的格式,您要使用JWT。

使用 RestSharp 的方法是:

client.Authenticator = new JwtAuthenticator(accessToken);

此验证器生成您想要的授权header:

Authorization: Bearer {accessToken}