我正在尝试学习如何使用新的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=='