如何在Android Studio中添加Amazon Cognito?

3
我刚开始使用Amazon Cognito Web服务。我按照这个示例应用程序[https://github.com/awslabs/aws-sdk-android-samples/tree/master/AmazonCognitoAuthDemo],但运行应用程序后出现以下错误:

AuthInvalidParameterException

有人有解决方法吗?我自己搜了一下,但找不到解决方法。

Auth.Builder builder = new Auth.Builder().setAppClientId(getString(R.string.cognito_client_id))
            .setAppClientSecret(getString(R.string.cognito_client_secret))
            .setAppCognitoWebDomain(getString(R.string.cognito_web_domain))
            .setApplicationContext(getApplicationContext())
            .setAuthHandler(new callback())
            .setSignInRedirect(getString(R.string.app_redirect))
            .setSignOutRedirect(getString(R.string.app_redirect));
    this.auth = builder.build();
    appRedirect = Uri.parse(getString(R.string.app_redirect));
}

我也加了这个,但对于下面的使用方法感到困惑。
 <!-- TODO: Add your Cognito pool details here -->
<string name="cognito_web_domain">domain</string>
<string name="cognito_client_id">client id</string>
<string name="cognito_client_secret">client secret</string>
<string name="app_redirect">redicrec</string>

异常:

由于:com.amazonaws.mobileconnectors.cognitoauth.exceptions.AuthInvalidParameterException: 验证失败 在 com.amazonaws.mobileconnectors.cognitoauth.Auth$Builder.validateCognitoAuthParameters(Auth.java:341) 在 com.amazonaws.mobileconnectors.cognitoauth.Auth$Builder.build(Auth.java:288) 在 com.example.ivissw.amzoncognito.MainActivity.initCognito(MainActivity.java:105) 在 com.example.ivissw.amzoncognito.MainActivity.onCreate(MainActivity.java:31) 在 android.app.Activity.performCreate(Activity.java:6975) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)  在 android.app.ActivityThread.-wrap11(Unknown Source:0)  在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)  在 android.os.Handler.dispatchMessage(Handler.java:105)  在 android.os.Looper.loop(Looper.java:164)  在 android.app.ActivityThread.main(ActivityThread.java:6541)  在 java.lang.reflect.Method.invoke(Native Method)  在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)  在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)  由于:com.amazonaws.mobileconnectors.cognitoauth.exceptions.AuthInvalidParameterException: {"AppCognitoWebDomain":"无效"} 在 com.amazonaws.mobileconnectors.cognitoauth.Auth$Builder.validateCognitoAuthParameters(Auth.java:338) 在 com.amazonaws.mobileconnectors.cognitoauth.Auth$Builder.build(Auth.java:288)  在 com.example.ivissw.amzoncognito.MainActivity.initCognito(MainActivity.java:105)  在 com.example.ivissw.amzoncognito.MainActivity.onCreate(MainActivity.java:31)  在 android.app.Activity.performCreate(Activity.java:6975)  在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)  在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)  在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)  在 android.app.ActivityThread.-wrap11(Unknown Source:0)  在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)  在 android.os.Handler.dispatchMessage(Handler.java:105)  在 android.os.Looper.loop(Looper.java:164)  在 android.app.ActivityThread.main(ActivityThread.java:6541)  在 java.lang.reflect.Method.invoke(Native Method)  在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)  在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 


你需要将与你账户对应的凭据放在那个 XML 文件中。 - fernandospr
2
@fernandospr 我同意你的看法,但是我对这里有些困惑:<string name="app_redirect">demoapp://www.loginactivity.com/mainactivity</string> 这是什么,我们在哪里可以找到它?能否请您具体说明一下。 - ashish
1个回答

2
首先,您需要打开Cognito控制台。 然后选择“用户池”选项并继续操作。如果您还没有任何用户池,则必须创建一个。 其次,查看左侧菜单并输入“应用程序客户端”。也可以为您的应用添加一个或使用现有的。 如果所有操作都正确,您将在下面看到此图片。

输入图像描述

接下来,在左侧控制台菜单中检查您的域名,并在需要时创建它。 如果完成了这些步骤,请返回到您的项目中并找到文件strings.xml。更改此部分:

<!-- Here below need your Domain Name -->
<string name="cognito_web_domain">yourDomainName.amazoncognito.com</string>
<!-- Write below your App Client ID -->
<string name="cognito_client_id">_id</string>
<!-- Write below your App Client Secret -->
<string name="cognito_client_secret">_secret</string>
<!-- This not influences on validate, may leave as is -->
<string name="app_redirect">demoapp://www.loginactivity.com/mainactivity</string> 

希望能帮到你!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接