【问题标题】:Simple Auth with Cognito AWS via Android通过 Android 使用 Cognito AWS 进行简单身份验证
【发布时间】:2020-09-06 18:28:39
【问题描述】:

我已经设法让 Cognito 在我们的 Web React 应用程序上运行,但现在我想让它在我们的 Android 应用程序上运行。但是,似乎 Auth 过程在 Android 上的工作方式与通过网络应用程序不同。这是代码:

我们的 React Web 应用代码如下所示:

Amplify.configure({
  Auth: {
    mandatorySignId: true,
    region: config.cognito.REGION,
    userPoolId: config.cognito.USER_POOL_ID,
    userPoolWebClientId: config.cognito.APP_CLIENT_ID
  }
});

const user = await Auth.signIn(username, password);

我如何在 Android Studio 上做同样的事情?我看过一些这样的例子

        Auth.Builder builder = new Auth.Builder();
        builder.setAppClientId(appClientId)
                .setUserPoolId(userPoolId)
                .setAppCognitoWebDomain("")//What is this???
                .setApplicationContext(this.getContext())
                .setAuthHandler(new callback())
                .setSignInRedirect("")//Why is this here?
                .setSignOutRedirect("");//Why is this here?
        this.auth = builder.build();

这个 Auth 构建器会打开一个浏览器并在那里管理登录,然后在我所见的范围内返回应用程序。如果我想使用自己的 UI 来获取用户名和密码,就像在 web-app 示例中一样?

有没有人有任何关于如何做到这一点的示例代码?

感谢您的帮助!真的很感谢

【问题讨论】:

    标签: android amazon-web-services authentication amazon-cognito


    【解决方案1】:

    这个 CognitoAuth (com.amazonaws:aws-android-sdk-cognitoauth:2.16.12@aar) 库中提供的唯一钩子似乎是一个捆绑属性,通过 .setCustomTabsExtras(bundle),可以分配给应用程序创建的 Bundle 实例并填充您将在 Chrome 自定义选项卡库中找到的属性,https://github.com/GoogleChrome/custom-tabs-client

    CognitoAuth 库的源代码在 AuthClient.java 中显示,它使用 Chrome 自定义选项卡库作为其托管 UI 的一部分,特别是 CustomTabsIntent 以及其他类,并且它将接受包含移动浏览器用于自定义的键/值对的捆绑实例。这些自定义在 Chrome 自定义选项卡文档和源代码中进行了描述。

    我自己一直在使用它,到目前为止,我还无法进行很多自定义工作,但话又说回来,我可能没有找到正确的键/值对来放入捆绑包中.我不得不限制我的努力,只是时间用完了,但我确实改变了工具栏的背景颜色,所以有希望。

    这是我用过的:

    Bundle customTabs = new Bundle();
    customTabs.putInt(CustomTabsIntent.EXTRA_TOOLBAR_COLOR, R.color.white);
    

    我必须在我的应用程序中包含 Chrome 自定义选项卡库才能访问 Bundle 中使用的常量。注意:工具栏颜色更改不正确,因为 Chrome 移动浏览器似乎将我的应用程序提供的新颜色映射到它自己的值。并不感到惊讶,但我仍然不知道如何解决它,或者我只是没有把正确的价值放在那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-14
      • 2020-06-01
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2021-04-28
      相关资源
      最近更新 更多