我编写了一个单页Web应用程序,访问者创建表示为JSON文档的内容并存储在localStorage中。我现在想让这些访问者能够使用外部身份提供商(Google,Twitter,Facebook等)登录,以便他们可以在我的应用程序中上传和共享他们的内容。
在AWS上构建此项目的最佳方法是什么?我是云端服务的全新。
我收集我想要一个S3存储桶来存储JSON文档,也许还有一个DynamoDB用于存储其他用户配置文件信息(如昵称或电子邮件地址),但身份验证/授权/配置文件方面(Cognito,IAM, OpenID,OAuth和Lambda脚本将所有东西联系在一起)完全逃脱了我。 (坦率地说,尽管阅读了三天,我甚至不确定我是否理解每个人的差异/目的。)
任何指示我正确方向的建议都将是一个很大的帮助。
答案 0 :(得分:1)
Cognito Identity为您的用户提供AWS凭据,其中包含您为AWS资源定义的权限。在您的应用程序中,您的用户可以使用Facebook,Google,Twitter,任何OIDC提供商或您自己的开发人员身份验证登录并获取AWS凭证。
您似乎想要使用自己的开发者提供商。您的实现取决于您的用例。但是,您可以使用Developer Authenticated Identities功能将开发人员提供程序与Cognito一起使用: http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html
每个用户都将获得Cognito身份证。
如果您的JSON对象仅供其所有者使用,则可以使用Cognito Sync,这样您的用户就可以检索这些对象,而不管他登录应用程序时他所使用的是什么设备。
如果您的JSON对象需要在用户之间共享,则需要开发另一种解决方案,可能正如您所提到的那样使用S3。
有关创建权限的帮助,请参阅此处: http://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html