我对Cognito的理解是,它可以用来代替本地的Django管理数据库来验证网站用户的身份.然而,我没有找到任何基本的"Hello,World"应用程序的示例,该应用程序具有通过Cognito的登录屏幕.如果有人能发表一篇文章,一步一步地展示如何创建Hello World Django应用程序和Cognito用户池,以及如何用对AWS Cognito的调用替换Django中的默认身份验证,我将非常感激.

特别是,我需要知道如何从Cognito管理站点收集设置对Cognito API的调用以验证用户身份所需的信息.

有两种情况需要考虑:应用程序用户登录到应用程序,以及管理员登录到站点的Django Admin URL.我假设我希望在这两种情况下都使用Cognito,否则我会留下一个潜在的漏洞,即Admin URL使用较弱的登录技术.

Current answers on AWS forums and StackExchange either say:

(1)使用Cognito进行网站认证是浪费时间,仅用于访问AWS资源

(2) 这不是浪费时间.我就要放弃了.我甚至创建了一个示例Cognito用户池和用户组,并在web上搜索这个用例的适当示例.(没有找到,否则我就不会写信了.)

(3)https://github.com/capless/warranthttps://github.com/metametricsinc/django-warrant是来自AWS论坛的两种可能的解决方案.

推荐答案

如果你正在读这篇文章,你可能会在谷歌上搜索"aws cognito django"xD.

我只想和大家分享我为了让这玩意儿工作起来所做的事情:

  • Django-Warrant.很棒的aws cognito包装.
  • 确保了解您当前的用户模型 struct .如果您使用自定义用户模型,不要忘记使用COGNITO_ATTR_MAPPING设置映射它.
  • 更改您的身份验证以支持第三方连接.当您从客户端获得一些Cognito令牌时,使用OAuth/jwt/session将其转换为您自己的令牌.

  • Rethink您的登录/注册流程.您想要不同的挂号吗?Django 的逮捕令支持它...

归根结底,这是一个GREAT%的快速身份验证解决方案.

Django相关问答推荐

我希望用户能够预订相同的桌子,但不是在同一时间

django优化查询

如何从Django';S模型中的方法中检索值?

身份验证有效,但登录无效.一直卡在pending

在 django 中使用自定义 url 转换器传递 url 参数

NoneType对象没有属性保存Django

在 django HTML 邮箱模板中使用字体

django 用一个提交按钮提交两种不同的表单

django.request 记录器没有传播到根目录?

Apache + mod_wsgi 与 nginx + gunicorn

在基于类的通用视图 CreateView 中访问 request.user 以便在 Django 中设置 FK 字段

Django ModelChoiceField optgroup 标签

如何创建一个在复选框右侧显示复选框标签的 Django 表单?

对 django 的 Http Delete 请求返回 301

Django 和 VirtualEnv 开发/部署最佳实践

如何在不同的元素上添加注释?

Django Rest 框架 ImageField

警告:找不到分发的 svn 位置==0.6.16dev-r0

运行单元测试时禁用 Django South?

ValueError: 无法解析相关模型 u'app.model'