1

DHC Web クライアントを使用して、FIWARE-Lab の KeyRock GE のインスタンスで Authorization Code Grant プロトコルをテストしています。

ここまでで、Authorization Request の実装に成功し、Access Token Request で使用するコードを取得しました。Authorization Request の URL は次のとおりです (ただし、DHC では実行されませんが、通常のブラウザーで実行されるため、ユーザーとパスワードを紹介できます)。

https://account.lab.fiware.org/oauth2/authorize/?response_type=code&client_id=2122&redirect_uri=http%3A%2F%2Flocalhost%2FCallback

client_id と redirect_uri の両方が、FIWARE-Lab のアカウントでアプリケーションに関連する値に対して正しいことを確認しました。

以下のリクエストを実行(画像が投稿できないので記載します)

POST
https:// account.lab.fiware.org/oauth2/token?grant_type=authorization_code&code=<code>&redirect_uri=http%3A%2F%2Flocalhost%2FCallback -- <code> is the code obtained on the Auth. Request
Authorization: Basic <XXXX> --- <XXXX> is the result of base64(client_id+":"+client_secret)
Content-Type: application/x-www-form-urlencoded

...次のエラー メッセージが表示されます。

{
"error":{
"message": "create_access_token() takes exactly 3 arguments (2 given)",
"code": 400,
"title": "Bad Request"
}
}

認証が正しいことを確認しました (アプリケーションからの OAuth 資格情報を使用した Basic)。以前の認証要求で使用したものと同じ redirect_uri と、それから取得したコードを使用しています。

なにが問題ですか?

PS: クエリ パラメータの一部またはすべてを削除しても、同じエラーが発生します。

4

2 に答える 2

2

URL にパラメーターを渡さないでください。代わりに、それらをクエリ文字列としてリクエストの本文に追加します。

POST /oauth2/token HTTP/1.1
Host: account.lab.fiware.org
Content-Type: application/x-www-form-urlencoded
Authorization: Basic <XXXX> --- <XXXX>
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=1234&redirect_uri=http%3A%2F%2Flocalhost%3A9000%2Fcodecallback.html
于 2015-08-11T14:41:43.570 に答える
0

プレゼンテーションの手順に従うことをお勧めします。

アプリケーションへの ID 管理とアクセス制御の追加

従わなければならないさまざまな要求と、それらの期待される応答についての詳細を提供します。

于 2015-07-09T20:35:00.783 に答える