Oauth 关于多个项目共享身份验证(DRF)的建议

Oauth 关于多个项目共享身份验证(DRF)的建议,oauth,django-rest-framework,jwt,amazon-cognito,Oauth,Django Rest Framework,Jwt,Amazon Cognito,我正在寻找一些关于为多个不同的django项目设置一个身份验证服务的建议 目前,我有一个项目使用AWS Cognito for auth(使用django Cognito jwt)。然后我有一个单独的项目,它使用不同的AWS Cognito用户池做同样的事情。这些项目之间没有任何联系。每个应用程序的当前流如下所示: (1) 转到一个项目并通过前端登录 (2) 使用AWS Amplify根据cognito对用户进行身份验证并返回JWT (3) 点击我的DRFAPI并调用get_或_create_,

我正在寻找一些关于为多个不同的django项目设置一个身份验证服务的建议

目前,我有一个项目使用AWS Cognito for auth(使用django Cognito jwt)。然后我有一个单独的项目,它使用不同的AWS Cognito用户池做同样的事情。这些项目之间没有任何联系。每个应用程序的当前流如下所示:

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

(2) 使用AWS Amplify根据cognito对用户进行身份验证并返回JWT

(3) 点击我的DRFAPI并调用get_或_create_,以便_cognito解析JWT

(4) 如果account是新的,那么在数据库中创建Django用户对象,存储来自cognito的ID

(4) 若帐户已经存在,那个么按cognito ID查找用户记录并返回该记录

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

我的目标是让一个Cognoto帐户允许用户在两个不同的项目上进行身份验证

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

因此,在较高的层次上,我想知道是否有人对如何构建这个项目有任何想法,或者任何使用cognito的示例项目,这可能有助于我仔细阅读

谢谢你的帮助

我也读过类似的帖子:
但是我的需求不同,因为我使用的是JWT auth和cognito,我认为您不需要太多的架构设计。为什么不呢?然后,您只需将两个应用程序中的相同用户池作为目标,并使用不同的应用程序ID。用户将被共享,每个应用程序都有其单独的客户端配置。

是的,它可以从AWS端工作。这个问题更多地来自Django方面。因为Django要求您提供一个身份验证类,所以我需要提供一个get_或_create_cognito方法,该方法将在我的数据库中创建一个用户对象(独立于aws中存储的cognito用户)。因此,除非我在我的两个应用程序客户端之间共享这个数据库,否则我最终还是会遇到重复的用户。感谢你的回答!