如何将OAuth2与Restsharp一起用于Lulu API

时间:2018-06-11 07:07:37

标签: c# .net oauth-2.0 restsharp

我正在尝试学习如何使用新的Lulu api并坚持使用OAuth2授权。他们在Curl中给出了一个样本,但我不熟悉它。我在之前的帖子中找到了回复,但它似乎并不适合这个应用程序。 Lulu Api文档可以在developers.lulu.com/public-docs找到,但很难遵循。我有很多年使用C#桌面应用程序的经验,但我不熟悉使用Rest API或Oauth。

这是我目前使用stackoverflow上的其他问题和答案生成的代码

var client = new RestClient($"https://api.sandbox.lulu.com/auth/realms/glasstree/ptotocol/openid connect");
string clientKeySecret=" Basic ZjJjNDdmMTctOWMxZi00ZWZlLWIzYzEtMDI4YTNlZTRjM2M3OjMzOTViZGU4LTBkMjQtNGQ0Ny1hYTRLWM4NGM3NjI0OGRiYw=='";
            var request = new RestRequest()
            {
                Method = Method.GET
            };
            request.AddParameter("grant_type", "client_credentials");
            request.AddHeader("Accept", "application/json");
            request.AddHeader("Content_Type", "application/x-www-form-urlencoded");
            request.AddHeader("Authorization", clientKeySecret);
            var response = client.Execute(request);
            var strJSONData = response.Content;

当我运行它时,strJSONData为null。

(ps.clientKeySecret变量不是真正的变量)

以下是文档中有关如何请求令牌的内容:

授权 Lulu API使用OpenID Connect,这是一个基于OAuth 2.0构建的身份验证层。 API不使用用户名和密码,而是使用JSON Web Token(JWT)来授权客户端请求。

要与API交互,您需要客户端密钥和客户端密钥。打开客户端密钥&生成它们的秘密页面。

生成令牌 要与API进行交互,首先必须生成OAuth令牌。这需要以下参数:

client_key client_secret grant-type必须设置为client_credentials 您必须向令牌端点发送POST请求特殊的Authorization标头。为方便起见,您可以直接从API密钥页面复制授权字符串:

curl -X POST https://api.lulu.com/auth/realms/glasstree/protocol/openid_connect/token \
  -d 'grant_type=client_credentials' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization:  Basic ZjJjNDdmMTctOWMxZi00ZWZlLWIzYzEtMDI4YTNlZTRjM2M3OjMzOTViZGU4LTBkMjQtNGQ0Ny1hYTRjLWM4NGM3NjI0OGRiYw=='

0 个答案:

没有答案