【发布时间】:2015-10-03 15:44:34
【问题描述】:
我已经按照Path API 的步骤了解如何验证用户。在教程验证过程中,用户开始重定向到以下 URL 并提示授予访问权限:
https://partner.path.com/oauth2/authenticate?response_type=code&client_id=THE_CLIENT_ID
然后,服务器将通过 URL 地址以授权 code 的形式给出响应(我已完成此步骤并获得了 code)。
正如文档解释的那样,代码应该使用 /oauth2/access_token 交换为访问令牌,只要带有客户端 ID 和客户端密码(获取 access_token)
但我不知道如何通过 cURL 将数据 POST 到服务器,我尝试了很多 curl_setopt() 选项和组合,但它仍然没有给我任何东西。
从文档中,请求看起来像这样:
POST /oauth2/access_token HTTP/1.1
Host: partner.path.com
Content-Type: application/x-www-form-urlencoded
Content-Length: <LENGTH>
grant_type=authorization_code&client_id=CLIENT&client_secret=SECRET&code=CODE
还有这样的cURL格式:
curl -X POST \
-F 'grant_type=authorization_code' \
-F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'code=CODE' \
https://partner.path.com/oauth2/access_token
服务器会给出这样的响应:
HTTP/1.1 201 CREATED
Content-Type: application/json
Content-Length: <LENGTH>
{
"code": 201,
"type": "CREATED"
"reason": "Created",
"access_token": <ACCESS_TOKEN>,
"user_id": <USER_ID>,
}
【问题讨论】:
标签: php json api curl oauth-2.0