AWS: NotAuthorizedException: неверный токен входа.Неверная лексема аудитории.(Сервис: AmazonCognitoIdentity - PullRequest
0 голосов
/ 25 июня 2018

При использовании MobileHubConsole в AWS я хотел использовать Google+ SignIn через Android.

, но я получаю эту ошибку:

06-25 23:30:02.819 17675-17675/com.xxxxxx.xxxu E/SignInActivity: Sign-in with Google caused an error.
com.amazonaws.mobile.auth.core.signin.CognitoAuthException: com.amazonaws.services.cognitoidentity.model.NotAuthorizedException: Invalid login token. Incorrect token audience. (Service: AmazonCognitoIdentity; Status Code: 400; Error Code: NotAuthorizedException; Request ID: 971e8ed4-78a1-11e8-8b4b-69de317f28ea)
    at com.amazonaws.mobile.auth.core.IdentityManager$SignInProviderResultAdapter.onCognitoError(IdentityManager.java:426)
    at com.amazonaws.mobile.auth.core.IdentityManager$SignInProviderResultAdapter.access$1000(IdentityManager.java:400)
    at com.amazonaws.mobile.auth.core.IdentityManager$3.run(IdentityManager.java:565)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:760)
 Caused by: com.amazonaws.services.cognitoidentity.model.NotAuthorizedException: Invalid login token. Incorrect token audience. (Service: AmazonCognitoIdentity; Status Code: 400; Error Code: NotAuthorizedException; Request ID: 971e8ed4-78a1-11e8-8b4b-69de317f28ea)

Я использую предоставленную AWS библиотеку входа в систему:

aws-android-sdk-auth-ui

Интеграция в Android:

AWSMobileClient.getInstance().initialize(getActivity(), new AWSStartupHandler() {
        @Override
        public void onComplete(AWSStartupResult awsStartupResult) {
            Log.e("SahajLOGOP", "Complete" +LoginFragment.this.getActivity()+"  ");

            SignInUI signin = (SignInUI) AWSMobileClient.getInstance().getClient(LoginFragment.this.getActivity(), SignInUI.class);
            if (LoginFragment.this.getActivity()!=null)
            signin.login(LoginFragment.this.getActivity(), MainActivity.class).execute();
        }
    }).execute();

awsconfiguration.Json:

{
"UserAgent": "MobileHub/1.0",
"Version": "1.0",
"CredentialsProvider": {
"CognitoIdentity": {
  "Default": {
    "PoolId": "ap-south-1---------",
    "Region": "ap-south-1"
  }
 }
 },
"IdentityManager": {
"Default": {}
},
{
"GoogleSignIn": {
"ClientId-WebApp": "73699------------a4q.apps.googleusercontent.com",
"Permissions": "email,profile,openid"
}
}

Федеративный пул удостоверений - Google Federated Identity Pool Федеративный пул удостоверений - OpenID Federated Identity Pool - OpenID Поставщики удостоверений IAM IAM Identity Providers Мобильный концентратор Google SignIn Mobile Hub Google SignIn

1 Ответ

0 голосов
/ 26 июня 2018

Хорошо, наконец, я решил проблему, и об этом нигде не упоминалось в Интернете.

Мое приложение для Android подписано с моим старым ключом SHA-1 на рабочем столе

поэтому для входа в систему нам нужен ключ идентификатора клиента Android, сгенерированный с тем же ключом, с которым подписано приложение.

И в консоли API API Google Firebase раньше самостоятельно решал эту проблему.путем создания самого правильного, но AWS является третьей стороной, поэтому мне пришлось выяснить проблему.

Итак, на этот раз я использовал правильный идентификатор клиента Android в AWS, с которым приложение подписано, и это решило проблему!

...