【发布时间】:2015-10-16 21:41:20
【问题描述】:
我有一个用 VB.net 编写的自定义订单管理系统。我现在需要使用 jet.com 合作伙伴 API 与他们集成。我相信这对你们那里的网络专家来说并不难,但我对 api 的 RESTful 调用没有太多经验。
Jet API 安全流程
以下安全流程是用于访问需要授权的 Jet API 函数的假定流程:用户通过 HTTPS POST 请求通过 SSL/TLS 向 Jet API
/api/Token端点提交他/她的凭据,如下所示:POST https://merchant-api.jet.com/api/Token HTTP/1.1 Host: merchant-api.jet.com Content-Type: application/json; charset=utf-8 Content-Length: 42 {"user":"dummy@jet.com","pass":"XXXXXXXX"}
/api/Token端点是 Jet API 用户的单点身份验证。因此,它不需要身份验证或授权。如果用户成功通过身份验证,则通过 SSL/TLS 返回安全(不记名)令牌,该令牌携带与用户编码和签名相关的声明:
HTTP/1.1 200 OK Cache-Control: no-store Pragma: no-cache Content-Length: XXX Content-Type: application/json; charset=utf-8 Server: Microsoft-IIS/8.0 Set-Cookie: auth0=XXX...XX; path=/; secure; httponly Server: nginx/1.7.1 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Wed, 06 Aug 2014 13:50:17 GMT Set-Cookie: SERVERID=03-4BRURJ6FFLMCK; path=/ {"id_token":"XXX...XX","access_token":"XXX...XX","token_type":"bearer"}令牌包含在 JSON 节点 id_token 中,应在对 Jet API 的以下 HTTP 请求中用作授权工具(请参阅下面的第 4 条),直到它过期或被刷新。
如果未在 /api/Token 端点进行身份验证,用户将返回带有标头
HTTP/1.1 401 Unauthorized的 HTTP 响应。 拥有上述不记名令牌后,用户应在调用其他 Jet API 端点时将其作为授权标头中 HTTPS 请求的一部分提供。此标头具有以下形式:授权:承载 如果用户具有与令牌相关的适当权限,他/她将被允许访问端点和/或由这些权限分配的特定数据。请求将被执行并由对应调用的API函数定义响应,否则返回HTTP/1.1 401 Unauthorized response。提供给 Jet API 用户的不记名令牌的生命周期有限。但是,在令牌过期之前,不记名令牌将完全替代用户凭据,因此必须将令牌作为私有加密材料处理。
谁能给我一些示例代码来用 C# 做到这一点?我在想使用 RestSharp 会有所帮助,但也没有任何经验。
我需要他们的 API:
- 授权我的 API 调用
- 以 JSON 格式上传产品
- 检索订单信息
- 等
所以,我被困在第一阶段,授权我的 API 调用。
【问题讨论】:
标签: c# json post restsharp jet.com-apis