【发布时间】:2020-07-08 08:33:42
【问题描述】:
我正在寻找一些关于为多个不同的 django 项目设置一个身份验证服务的建议。
目前,我有一个项目使用 AWS Cognito 进行身份验证(使用 django-cognito-jwt)。然后我有一个单独的项目,它使用不同的 AWS Cognito 用户池执行相同的操作。这些项目没有任何联系。每个应用的当前流程如下所示:
(1) 转到一个项目并通过前端登录
(2) 使用 AWS Amplify 针对 cognito 对用户进行身份验证并返回 JWT
(3) 点击我的 DRF API 并调用 get_or_create_for_cognito 来解析 JWT
(4) 如果帐户是新的,则在存储来自 cognito 的 ID 的数据库中创建 Django User 对象
(4)如果账号已经存在,通过cognito ID查找User记录并返回
(5) 使用此返回的用户对象,我可以查找与用户关联的组和权限,以允许或禁止各种端点。
我的目标是让一个 cognito 帐户允许用户在两个不同的项目上进行身份验证。
我知道我可以将两个项目都指向同一个“用户”表,但一些不同的网站/博客认为这是一种不好的做法。有些人提到引入第三个 django 项目,该项目的唯一责任是身份验证。但是,我发现的大多数示例都是使用 django 的内置身份验证而不是 cognito。
因此,从总体上讲,我想知道是否有人对如何构建它有任何想法,或者任何使用 cognito 的示例项目可能对我阅读有帮助。
感谢您的帮助!!
我也读过这篇类似的帖子: Multiple Django apps, shared authentication 但我的要求不同,因为我使用的是 JWT auth 和 cognito
【问题讨论】:
标签: oauth django-rest-framework jwt amazon-cognito