我正在尝试执行https://github.com/doorkeeper-gem/doorkeeper/wiki/Interacting-as-an-OAuth-client-with-Doorkeeper#writing-a-raw-oauth-client所描述的oauth2流程,但是当我得到401时 我尝试检索访问令牌。这就是我正在做的事情
1)点击应用程序上的授权按钮,如所示
2)我在下一个屏幕上授权申请,我给了一个chromiumapp.org/?code=eb775dba8811f605c672a0aac8472972eabaae87446ac957e2b71c57b0b10e6e
3)鉴于此代码我执行
curl -XPOST http://localhost:3000/oauth/token -d '{
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
"redirect_uri": "https://galaiojniedmogfplghkjnmcfnlbpbpg.chromiumapp.org/",
"grant_type": "authorization_code",
"code": "eb775dba8811f605c672a0aac8472972eabaae87446ac957e2b71c57b0b10e6e"
}`
然而,这会返回{"error":"invalid_request","error_description":"The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed."}
我缺少流程的某些部分,或者文档中是否有不正确的内容?
答案 0 :(得分:0)
我已经更新了我上面链接的wiki,但是如果其他人遇到这个问题,根据rfc,令牌请求上的参数必须是urlencoded形式。
curl -XPOST http://localhost:3000/oauth/token
-F "client_id=CLIENT_ID"
-F "client_secret=CLIENT_SECRET"
-F "redirect_uri=https://galaiojniedmogfplghkjnmcfnlbpbpg.chromiumapp.org/"
-F "grant_type=authorization_code"
-F "code=eb775dba8811f605c672a0aac8472972eabaae87446ac957e2b71c57b0b10e6e"