使用RESTSHARP进行OAuth 2身份验证不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用RESTSHARP进行OAuth 2身份验证不起作用相关的知识,希望对你有一定的参考价值。
我正在尝试使用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参数?猜测它必须是非常标准的程序。
我尝试了在另一个具有类似问题的线程中提出的许多可能性,但根本没有成功。例如,我希望其中一个可以工作,但它不会:
- client.Authenticator = new OAuth2UriQueryParameterAuthenticator(AccessToken); //这确实在请求体中写了'oauth_token = token12345'文本,但就是这样
- request.AddParameter(“授权”,“承载”+ AccessToken,ParameterType.HttpHeader); //这确实在请求中没有包含任何内容,根本没有参数
- request.AddHeader(“授权”,“持票人”+ AccessToken); //这确实在请求中没有包含任何内容,根本没有参数
答案
根据您期望的格式,您想要使用JWT。
使用RestSharp的方法是:
client.Authenticator = new JwtAuthenticator(accessToken);
此身份验证器生成您想要的授权标头:
Authorization: Bearer {accessToken}
以上是关于使用RESTSHARP进行OAuth 2身份验证不起作用的主要内容,如果未能解决你的问题,请参考以下文章
RestSharp OAuth2 承载身份验证失败,访问被拒绝
Autodesk-forge,2 腿身份验证 (OAuth):oauth
如何使用 Angular 2 进行 oAuth2 基本身份验证?