aws android cognitoはdeveloper authenticated identities
でのみ動作させようとしています。しかし、以下の例外を取得する(sdkバージョン2.2.16)。Android aws cognito無効なログイントークン。 Cognitoトークンではありません
私はidentityIdとidentityPoolIdをクロスチェックしており、両方の値が正しいです。
loginsMapでは、キーを「cognito-identity.amazonaws.com
」とし、トークンを自分のサーバーのバックエンドから受け取ったopenIdトークンとして使用しています。
loginsMapは、アンドロイドAWSAbstractCognitoDeveloperIdentityProvider
クラスのrefreshおよびgetIdentityIdメソッドに設定されています。
誰もこの種の似たような問題に直面していますか?
com.amazonaws.services.cognitoidentity.model.NotAuthorizedException: Invalid login token. Not a Cognito token. (Service: AmazonCognitoIdentity; Status Code: 400; Error Code: NotAuthorizedException; Request ID: a270a26a-18fa-11e6-add3-c1b3dbd555de)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:716)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:392)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:199)
at com.amazonaws.services.cognitoidentity.AmazonCognitoIdentityClient.invoke(AmazonCognitoIdentityClient.java:533)
at com.amazonaws.services.cognitoidentity.AmazonCognitoIdentityClient.getCredentialsForIdentity(AmazonCognitoIdentityClient.java:468)
at com.amazonaws.auth.CognitoCredentialsProvider.populateCredentialsWithCognito(CognitoCredentialsProvider.java:627)
at com.amazonaws.auth.CognitoCredentialsProvider.startSession(CognitoCredentialsProvider.java:553)
at com.amazonaws.auth.CognitoCredentialsProvider.refresh(CognitoCredentialsProvider.java:503)
at com.amazonaws.auth.CognitoCachingCredentialsProvider.refresh(CognitoCachingCredentialsProvider.java:463)
at com.amazonaws.auth.CognitoCachingCredentialsProvider.getIdentityId(CognitoCachingCredentialsProvider.java:414)
at com.amazonaws.auth.CognitoCredentialsProvider.populateCredentialsWithCognito(CognitoCredentialsProvider.java:621)
at com.amazonaws.auth.CognitoCredentialsProvider.startSession(CognitoCredentialsProvider.java:553)
at com.amazonaws.auth.CognitoCredentialsProvider.refresh(CognitoCredentialsProvider.java:503)
at com.amazonaws.auth.CognitoCachingCredentialsProvider.refresh(CognitoCachingCredentialsProvider.java:463)
私はリフレッシュとgetidentityidメソッドの更新(identityid、token)を保持しています。また、iOS SDKから試してみると、私のサーバーから受け取った同じidentityidとトークンが機能します。サンプルアプリケーションで提供されているのと同じコードを使用しています。 –
サンプルアプリケーションでは、ログインマップに "cognito-identity.amazonaws.com"が設定されていません。 [DeveloperAuthenticationTask](https://github.com/awslabs/aws-sdk-android-samples/blob/master/CognitoSyncDemo/src/com/amazonaws/cognito/sync/demo)のログインマップに開発者プロバイダ名を追加します。 /DeveloperAuthenticationTask.java#L54)。あなたもそれを変更しましたか? –
ええ、私は "cognito-identity.amazonaws.com"を削除し、その代わりにプロバイダ名を使用しました。そして、今働いています。ご協力いただきありがとうございます !! –