0

ここで間違っていることを理解しようとしています。AWS AmazonがNotAuthorizedExceptionを引き起こしてログインするためのCognito

LWA(amazonでログイン)は問題ありません。私は経由でログイン情報を取得するために電話をかけるとき

AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
        IdentityPoolId: 'us-east-1:2a...', 
        Logins: { 
         'www.amazon.com': access_token 
        } 
       }); 

次:私は、私はすぐにログインのPARAMを設定し、トークンバックのアクセスを取得

AWS.config.credentials.get(err,data){ 
       console.log(data); 
       console.log(error); 
      }; 

それはPOST https://cognito-identity.us-east-1.amazonaws.com/を呼び出し、以下のデータを渡し{"IdentityPoolId":"us-east-1:2a...","Logins":{"www.amazon.com":"Atza%7C..."}}

残念ながら、その呼び出しの応答は常に400 x-amzn-ErrorMessage:Invalid login token. x-amzn-ErrorType:NotAuthorizedException:

である私は連合同定を作成しましたty PoolをCognitoに設定し、Amazon App IdとしてセキュリティプロファイルID(LWA)を指定しました。また、Cognito ID作成ウィザードは、適切なポリシーセットを持つと思われるAuthとUnAuthの両方に必要なIAMロールを作成しました。認証されていないアイデンティティが有効です。

私は本当にここで失われています。私は、WebアプリケーションでLWAベースの認証を取得するだけで、APIゲートウェイへのREST呼び出し時にリソースを保護できるようにする必要があります。また、私はCognito以外にAWS SDKを使用していません。

答えて

0

コードは正常です。このエラーは2つのケースで発生する可能性があります。

  1. サービスが取得するアクセストークンの有効期限が切れています。
  2. アクセストークンは、IDプールで設定されているものとは異なるLWAアプリから取得しています。

これらの両方のシナリオがこの原因ではないことを確認できますか?

+0

コンソールでAWS.config.credentials.expiredのクエリを実行すると、「true」と戻ってきます。それはそれが期限切れであることを意味しますか?トークンはデフォルトの有効期限3600秒で戻ってきます。 – xoail

関連する問題