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