使用 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 中包含带有不记名令牌的授权参数?
猜想这一定是相当标准的程序。
我尝试了在另一个有类似问题的线程中建议的许多可能性,但根本没有成功。
例如,我希望其中之一应该起作用,但它不起作用:
client.Authenticator = new OAuth2UriQueryParameterAuthenticator(AccessToken); // 这确实在请求 body 中写入了 'oauth_token=token12345' 文本,仅此而已
request.AddParameter("Authorization", "Bearer " + AccessToken, ParameterType.HttpHeader); // 这确实在请求中不包含任何内容,根本没有参数
request.AddHeader("Authorization","Bearer " + AccessToken); // 这确实在请求中不包含任何内容,根本没有参数
根据您期望的格式,您要使用JWT。
使用 RestSharp 的方法是:
client.Authenticator = new JwtAuthenticator(accessToken);
此验证器生成您想要的授权header:
Authorization: Bearer {accessToken}
我正在尝试使用 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 中包含带有不记名令牌的授权参数? 猜想这一定是相当标准的程序。
我尝试了在另一个有类似问题的线程中建议的许多可能性,但根本没有成功。 例如,我希望其中之一应该起作用,但它不起作用:
client.Authenticator = new OAuth2UriQueryParameterAuthenticator(AccessToken); // 这确实在请求 body 中写入了 'oauth_token=token12345' 文本,仅此而已
request.AddParameter("Authorization", "Bearer " + AccessToken, ParameterType.HttpHeader); // 这确实在请求中不包含任何内容,根本没有参数
request.AddHeader("Authorization","Bearer " + AccessToken); // 这确实在请求中不包含任何内容,根本没有参数
根据您期望的格式,您要使用JWT。
使用 RestSharp 的方法是:
client.Authenticator = new JwtAuthenticator(accessToken);
此验证器生成您想要的授权header:
Authorization: Bearer {accessToken}