私の使用のために oauth2orize all-grants の例をカスタマイズしようとしています。all-grants をそのまま実行でき、すべてが (ご想像のとおり) 動作しますが、カスタマイズしたバージョンを実行すると、常に次のエラーが発生します。
Error: Unable to issue redirect for OAuth 2.0 transaction
at Object.response [as handle] (C:\Dev\Expy\api\node_modules\oauth2orize\lib\grant\code.js:122:41)
私はこれを少し掘り下げてきましたが、その関数内に txn 変数のプロパティがあり、 redirectURI という名前にする必要があり、最初のリクエストのクエリ文字列から /dialog/authorize ページへの redirect_uri を入力する必要があります. 何らかの理由で、これは私のサンプルアプリでは起こりません。これは、エクスプレス バージョンの違いが原因ですか? これが、サンプル コードと私のカスタマイズの最大の違いです。all-grants は express 2.* を使用し、私のアプリは express 4.* を使用します。
エクスプレス バージョンの問題ではない場合、コードのどこから問題を探す必要がありますか?
参考までに、これは私のアプリで txn オブジェクトに対して表示されるものです。
txn: {
"transactionID": "evlUd2q4",
"client": { ... },
"req": {
"type": "code",
"clientID": "5C3B4438-433F-11E5-A532-74653C701F13"
},
"user": { ... },
"res": {
"allow": true
}
}
そして、これは私が例と同じオブジェクトで見たものです ( req と txn 自体に redirectURI が存在することに注意してください):
txn: {
"transactionID": "EEcYp3Uj",
"client": { ... },
"redirectURI": "http://localhost:3000/api/userinfo",
"req": {
"type": "code",
"clientID": "abc123",
"redirectURI": "http://localhost:3000/api/userinfo"
},
"user": { ... },
"res": {
"allow": true
}
}