关于多个项目共享认证(DRF)的建议

问题描述 投票:1回答:1

我正在寻找有关为多个不同的Django项目设置一种身份验证服务的建议。

[当前,我有一个项目使用AWS Cognito进行身份验证(使用django-cognito-jwt)。然后,我有一个单独的项目,使用不同的AWS Cognito用户池执行相同的操作。这些项目没有任何连接。每个应用程序的当前流程如下所示:

((1)转到一个项目并通过前端登录

((2)使用AWS Amplify来根据认知模式对用户进行身份验证并返回JWT

((3)击中我的DRF API并调用get_or_create_for_cognito来解析JWT

((4)如果帐户是新帐户,请在存储来自cognito的ID的数据库中创建Django User对象

((4)如果帐户已经存在,请按认知ID查找用户记录并返回]

((5)使用此返回的用户对象,我可以查找与用户关联的组和权限,以允许或禁止各种端点。

我的目标是拥有一个认知帐户,允许用户在两​​个不同的项目上进行身份验证。

我知道我可以将两个项目都指向同一个“用户”表,但是一些不同的站点/博客都在谈论这是不好的做法。有人提到引入第三个django项目,其唯一职责是身份验证。但是,我发现的大多数示例都是使用django内置的身份验证而不是cognito。

因此,在高层次上,我想知道是否有人对如何构建此构架有任何想法,或者是否有任何使用cognito的示例项目对我通读都有帮助。

感谢您的帮助!

我也阅读了这篇类似的文章:Multiple Django apps, shared authentication但是我的要求有所不同,因为我使用的是JWT auth和cognito

oauth django-rest-framework jwt amazon-cognito
1个回答
0
投票

我认为您不需要太多的架构。为什么不只是put two app clients on the same user pool?然后,您只需将两个应用程序中具有相同应用程序ID的相同用户池作为目标。用户将被共享,并且每个应用程序都将获得其单独的客户端配置。

© www.soinside.com 2019 - 2024. All rights reserved.