如何使用 Amazon Cognito 作为我的网站(非移动应用程序)的用户身份验证 [关闭]
Posted
技术标签:
【中文标题】如何使用 Amazon Cognito 作为我的网站(非移动应用程序)的用户身份验证 [关闭]【英文标题】:How do I use Amazon Cognito as user authentication for my website (NOT mobile app) [closed] 【发布时间】:2014-09-01 04:03:34 【问题描述】:如何在 Web 应用程序(不是 ios 或 android 应用程序)中使用 AWS-Cognito 进行用户身份验证?
Amazon cognito 刚刚问世:
http://aws.amazon.com/cognito/
http://aws.amazon.com/about-aws/whats-new/2014/07/10/introducing-amazon-cognito/
来自常见问题解答:
问:我还需要自己的后端身份验证和身份系统吗 使用 Amazon Cognito?
没有。 Amazon Cognito 支持通过 Amazon、Facebook 和 Google 登录, 以及为未经身份验证的用户提供支持。与亚马逊 Cognito 你可以支持联合身份验证,配置文件数据同步 无需编写任何后端即可存储和 AWS 访问令牌分发 代码。
它似乎是为移动应用程序构建的(它们为 android 和 IOS 提供 SDK)。
到目前为止,AWS php SDK 和 boto 没有引用 Cognito,但 Amazon 提到了我们可以使用的“后端 API”。
【问题讨论】:
如果 SDK 暂时不支持它,我真的会对 ruby gem 感兴趣。很高兴找到 Nate :) 我第一次从 SO 中了解 AWS 服务 :D 虽然我喜欢它的 python 库,但非常感谢使用 google/facebook/amazonid 进行身份验证的示例 python 代码。 【参考方案1】:这里是 Amazon Cognito 的开发人员之一。
为了扩展 JeffersonBe's answer,我们的 documentation website 上提供了 Amazon Cognito 中身份和同步服务的 API 文档。
此外,许多 AWS 开发工具包已经更新以支持 Amazon Cognito:
PHP javascript Java即将推出更多功能。
感谢您的关注。如果您有其他问题或遇到问题,请在此处通过 SO 或通过我们的新 dedicated Cognito forum 发布其他问题。
【讨论】:
在 Devise gem 中对它的支持可能对 Rails 应用程序影响最大。 太棒了!很快会有boto发布吗? @Nate,我无法对 boto 版本发表评论,您可能想在他们的 github 问题上提出问题以寻求支持。 我也可以使用 cogntio 来保护我在 AWS api 网关中的 restful api 吗?我已经在 dynamodb 上设置了开发者身份,当正确的用户登录时,我会发回令牌。 @johnny 是的,请参阅examples using the API Gateway generated SDKs 的文档。【参考方案2】:Cognito 非常适合网络应用。 有一个关于使用 Cognito ID 和 Sync for Javascript web 应用程序的很好的教程: http://backspace.technology/learn-aws-cognito.html 并且在 http://blog.backspace.academy/2015/03/using-cognito-with-node.html
更新:现在http://backspace.technology/learn-aws-cognito-id-phonegap.html 也有一个 Cordova/PhoneGap 教程 并且在 http://blog.backspace.academy/2015/03/using-cognito-with-phonegapcordova-part.html
流程如下:
-
注册 Facebook 应用程序。您将获得一个 App ID 和 App Secret。
使用 App ID 和 App Secret 创建 AWS Cognito ID 池。
使用应用程序 ID 和密码和 Passport 为用户获取 Facebook 会话令牌。
使用 Facebook 令牌为用户获取临时 AWS 凭证。
使用临时凭证访问 AWS 资源,例如 Cognito Sync。
虽然如果您只是在寻找身份验证,那么您实际上并不需要 Cognito,您只需使用 Facebook 登录。
【讨论】:
我也可以使用 cogntio 来保护我在 AWS api 网关中的 restful api 吗?我已经在 dynabo 上设置了开发人员身份,当正确的用户登录时,我发回令牌,然后他们就可以访问了。【参考方案3】:从我在他们的FAQ 中看到的,是的:
问:Amazon Cognito 是否公开服务器端 API?
是的。 Amazon Cognito 公开了服务器端 API。您可以创建自己的 通过直接调用这些 API 到 Amazon Cognito 的自定义接口。这 开发人员指南中描述了服务器端 API。
这里是相关Amazon Cognito Documentation的链接:
Amazon Cognito Identity API Reference Amazon Cognito Sync API Reference【讨论】:
【参考方案4】:通过在您的 Web 应用程序和移动设备中使用 Amazon Cognito 应用程序,您可以为您的应用程序使用一致的跨平台标识符 通过 Facebook、Google 或 Amazon 进行身份验证的最终用户;一起 使用 Cognito Sync 服务,这使您可以保持与用户相关的 跨所有应用程序和平台的数据一致。进一步, Cognito 可帮助您检索临时的、有限权限的凭据 对于经过身份验证和未经身份验证的用户,无需管理 任何后端基础设施。在上一篇文章中,我们介绍了如何 从您的手机连接到 Amazon Cognito 身份服务 应用程序。
这里是相关链接:Amazon Cognito Documentation
【讨论】:
以上是关于如何使用 Amazon Cognito 作为我的网站(非移动应用程序)的用户身份验证 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在预认证用户的情况下如何使用 amazon cognito 获取刷新令牌
Amazon Cognito 使用开发人员身份验证 Obj C 设置 identityId
如何将 Amazon Cognito 与适用于 Android 的 Google Plus 集成?