コグニトユーザープールでaws apiゲートウェイオーソライザーを使用しようとしています。 aws apiゲートウェイコンソールを使用してテストすると、問題なく動作します。
しかし、APIで認証を有効にしようとすると、"message": "Unauthorized".
以下のスクリーンショットを確認してください
API Gatewayコンソールのスクリーンショット-これは正常に動作します
誰かが助けてくれますか?.
参考までに、ここに記載されている指示に従いました http://docs.aws.Amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html
私の場合、認証コードはid_token
である必要があります。代わりにaccess_token
の使用を間違えました
Mathiasのソリューションを試しましたが、最初はうまくいきませんでした。奇妙なことに、何時間か後に戻って再試行することができ、今回はAPIをデプロイする前に、APIゲートウェイに他のいくつかの変更を加えました。今回は、私が行った他の変更は表面的なものでしたが、うまくいきました。
また、よくあることですが、AWSドキュメントは間違っており、method.response.header.Authorization
を使用する必要があると述べています。これは、実際にはカスタム認証を使用するLambdaにのみ有効です。新しいCognito User Pool Authorizerを使用している場合は、ここでAuthorization
を使用する必要があります。
method.response.header.Authorization
ではなくAuthorization
を使用してください-編集-
スタックをCloudformationに変換したところ、Cloudformationを使用してオーソライザーをデプロイしている場合、実際にはトークンソースに完全なmethod.response.header.Authorization
を指定する必要があることがわかりました。実際、その形式を使用しない場合、スタックのデプロイは失敗します。ただし、デプロイすると、コンソールでオーソライザーを見ると、method.response.header
パーツが削除されています。
同じ問題がありましたが、解決策はプロジェクトを再デプロイすることでした。