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

问题描述 投票:1回答:1

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

我从身份验证服务获取令牌但我无法使用它。输出请求始终会跳过Authorization参数。

请求应包括Authorization:Bearer token1235等参数

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正在操纵我指定的参数。如何在标头中包含带有承载令牌的Authorization参数?猜测它必须是非常标准的程序。

我尝试了在另一个具有类似问题的线程中提出的许多可能性,但根本没有成功。例如,我希望其中一个可以工作,但它不会:

  1. client.Authenticator = new OAuth2UriQueryParameterAuthenticator(AccessToken); //这确实在请求体中写了'oauth_token = token12345'文本,但就是这样
  2. request.AddParameter(“授权”,“承载”+ AccessToken,ParameterType.HttpHeader); //这确实在请求中没有包含任何内容,根本没有参数
  3. request.AddHeader(“授权”,“持票人”+ AccessToken); //这确实在请求中没有包含任何内容,根本没有参数
c# rest oauth access-token restsharp
1个回答
1
投票

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

使用RestSharp的方法是:

client.Authenticator = new JwtAuthenticator(accessToken);

此身份验证器生成您想要的授权标头:

Authorization: Bearer {accessToken}
© www.soinside.com 2019 - 2024. All rights reserved.