【问题标题】:What is the recommended architecture when using AWS Cognito Signup in a mobile app?在移动应用程序中使用 AWS Cognito Signup 时推荐的架构是什么?
【发布时间】:2018-09-03 20:02:53
【问题描述】:

我正在尝试在我的移动应用程序中使用 AWS Cognito 进行身份验证。

目前,我的应用程序的后端将所有用户详细信息存储在 MySQL 的 User 表中,并与其他表有关系(例如 Orders 表等)。当我使用 Cognito 注册时,我是否必须先使用 cognito 注册用户,然后再将这些详细信息传递给我的后端,以便它可以将详细信息存储在我的用户表中?

我们将如何处理 cognito 注册正确通过但当我将详细信息传递到我的应用程序后端时失败(例如因为我的服务器已关闭)的情况?

这里推荐的架构是什么?

【问题讨论】:

    标签: amazon-web-services aws-cognito


    【解决方案1】:

    当我使用 Cognito 注册时,我是否必须先使用 Cognito 然后再次将这些详细信息传递给我的后端,以便它 可以在我的用户表中存储详细信息吗?

    是的,将用户详细信息保存在用户表中也很有用。这将在查询数据库以获取应用程序功能时使用。

    我们将如何处理 Cognito 注册正确通过的情况 但是当我将详细信息传递给我的应用程序的后端时它失败了(比如 因为我的服务器宕机了)?

    以容错方式执行此操作,在用户注册(预注册)之前使用 Cognito 中的Lambda triggers,Lambda 函数将包含更新数据库的代码,如果成功,Cognito 将继续注册.

    【讨论】:

      【解决方案2】:

      当我使用 Cognito 注册时,我是否必须先使用 cognito 注册用户,然后再次将这些详细信息传递给我的后端,以便它可以将详细信息存储在我的用户表中?

      AWS Congnito 提供了在某些 Cognito 事件上调用 Lambda 函数的选项,请参阅 https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html

      在 UserPool 触发器中,您可以定义一个“预注册” lambda,当用户提交他们的信息进行注册时将调用它

      我们将如何处理 cognito 注册正确通过但当我将详细信息传递到我的应用程序后端时失败(例如因为我的服务器已关闭)的情况?

      根据文档:

      Amazon Cognito invokes Lambda functions synchronously. When called, your Lambda function must respond within 5 seconds. If it does not, Amazon Cognito retries the call. After 3 unsuccessful attempts, the function times out. This 5-second timeout value cannot be changed

      有几种选择:

      • 如果您需要容错,可以使用 SQS 来确保可靠交付。在这种情况下,您将需要读取和处理队列

      • 您可以实现自己的错误处理(例如存储、重试、发送邮件等)

      【讨论】:

        猜你喜欢
        • 2010-10-30
        • 1970-01-01
        • 1970-01-01
        • 2015-07-08
        • 2016-01-12
        • 1970-01-01
        • 2012-02-21
        • 2016-08-06
        • 2018-06-21
        相关资源
        最近更新 更多