【问题标题】:How to add Amazon cognito in Android Studio?如何在 Android Studio 中添加 Amazon cognito?
【发布时间】:2018-02-22 10:57:20
【问题描述】:

我刚开始使用 Amazon cognito 网络服务。我关注了这个示例应用程序 [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(未知来源: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(本机方法) 在 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":"invalid"} 在 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(未知来源: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(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

【问题讨论】:

  • 您必须将您的帐户对应的凭据放在该 xml 文件中。
  • @fernandospr 同意你的观点,但我对此感到困惑:demoapp://www.loginactivity.com/mainactivity 那是什么以及我们可以在哪里找到它。你能具体说明一下吗?

标签: android amazon-web-services


【解决方案1】:

首先,您需要打开Cognito Console。 然后在此处选择用户池选项并继续。如果您没有任何用户池,则必须创建它。 其次,查看左侧菜单并输入“App clients”。还为您的应用程序添加一个或使用现有的。 如果一切正常,您将在下面看到这张图片。

enter image description here

接下来,在左侧控制台菜单中检查您的域名,并在需要时创建它。 如果完成,返回到您的项目并找到文件 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> 

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 2016-07-27
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 2017-11-11
    • 2016-01-24
    相关资源
    最近更新 更多