我制作的Android应用程序将让用户注册,登录并将各种类型的文件上传到数据库。我已经在应用程序上工作了大约一个月,并且有一个非常准确的应用程序,用户可以注册,登录和上传照片。到目前为止,我一直在我的覆盆子pi上托管一个postgres数据库,仅用于测试目的。
现在我想把它转移到亚马逊的aws系统上。由于它是一款移动应用程序,我知道我会使用很多他们的认知服务。我想使用他们的新用户池功能,让amazon处理用户注册,登录和身份验证,因为它肯定比我能想出的任何东西都更安全。
我理解用户池是如何工作的,并且已经完成了他们的教程,但我有点困惑,因为我可以将它与我的应用程序结构的其余部分集成。在了解cognito服务之前,我的应用程序将使用amazon的RDS进行postgres数据库设置,这是一个EC2服务器,我的大部分服务器端脚本都将被保存(在客户端从我的Android应用程序调用时)例如,用户需要注册调用register.php)和S3实例来存储图像。
对于cognito,我知道有些事情可能会改变。我的问题是:会发生什么变化?我是否应该在亚马逊的RDS上包含一个包含我所有用户信息的数据库?在这种情况下最好的做法是什么?
感谢您的帮助!
答案 0 :(得分:1)
要在用户注册和登录后访问各种AWS服务,您需要将Cognito用户池集成到Cognito Federated Identities中。
在Cognito Federated Identities中,您的用户会根据您定义的角色获取凭据。您选择存储用户的数据完全取决于您的应用程序的逻辑。
以下是Cognito中IAM角色的文档,可能会有所帮助: http://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html
以下是有关如何为用户获取AWS凭据的文档: http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-integrating-user-pools-with-identity-pools.html