因此,由于解析正在关闭,我们正在将我们开发的网站/移动应用程序移至AWS。我们主要使用以下服务: SNS,SES,Dynamo,S3,Lambda。 现在我仍然有点困惑:
是什么认知用于?我们真的需要cognito来验证用户并使用DynamoDB,S3,SNS吗?或者我们可以为每个服务使用特定的API并直接连接(使用Js SDK)吗?
如果我们必须使用cognito,我们如何保存本地数据,即记录在用户/身份?是什么认知同步是为了什么或我们必须使用cookie?
总结一下,当我可以使用JavaScript SDK直接连接DynamoDB时,为什么需要cognito? 先谢谢你。
答案 0 :(得分:7)
Amazon Cognito
可以在两个子服务中分解:Amazon Cognito Identity
和Amazon Cognito Sync
。
将前者视为身份验证服务和凭据提供程序。后者只是一种存储用户数据并在多个设备之间保持同步的服务。
假设您在DynamoDB中有一个表。我们假设您有一个将该项存储在该表上的Web应用程序。
您可以在IAM中创建用户,将凭据信息嵌入到Web应用程序中,然后使用AWS SDK将该项目放在桌面上。
这里有三件事:
对于某些应用程序可能没问题,但Amazon Cognito Identity
为这些常见问题提供了解决方案。
让我解释一下Cognito Identity的工作流程:
在Amazon Cognito仪表板上,您可以为" 身份"配置角色和政策。 (Cognito中的用户)。这样,您可以指定它可以访问的服务。它甚至允许您为用户创建访问角色(管理员用户可能能够访问普通用户不应该访问的某些服务)。
我还应该注意,亚马逊Cognito可以很容易地适应支持Facebook / Google+ /亚马逊帐户,这些帐户将被映射到相同的身份,因此用户可以通过多个来源登录。
将其视为DynamoDB表,您可以在其中存储特定用户的信息。这些信息在多个设备之间共享,始终同步。这意味着当Web应用程序更新用户值时,移动应用程序将自动反映此更改。
您可以存储的用户数据数量有限制(我现在不记得),因此您不会使用持久信息(例如用户密码),而不是分享信息的意思。