我正在寻找一些关于为多个django项目设置一个身份验证服务的建议。
目前,我有一个项目使用AWS认知为auth (与django-定位-jwt)。然后,我有一个单独的项目,使用不同的AWS认知用户池做同样的事情。这些项目没有任何联系。每个应用程序的当前流如下所示:
(1)进入一个项目并通过前端登录
(2)使用AWS扩增对用户进行身份验证并返回JWT
(3)命中我的DRF并调用get_or_create_for_cognito解析JWT
(4)如果帐户是新的,请在数据库中创建Django用户对象,以存储同源ID
(4)如果帐户已经存在,则通过定位ID查找用户记录并将其返回
(5)使用返回的user对象,我可以查找与用户关联的组和权限,以允许或不允许各种端点。
我的目标是拥有一个认知帐户,允许用户在两个不同的项目上进行身份验证。
我知道我只需将两个项目指向同一个“用户”表,但是有几个不同的站点/博客已经谈到了这是一个糟糕的实践。有些人提到引入了第三个django项目,它的唯一责任是身份验证。但是,我发现的大多数示例都是使用django在身份验证中构建的,而不是同源的。
因此,在一个高层次上,我想知道是否有人知道如何架构这个,或者任何使用认知的示例项目,这可能会对我的阅读有所帮助。
谢谢你的帮助!!
我也读过类似的文章:,但是我的需求是不同的,因为我使用的是JWT和认知
发布于 2020-03-27 21:58:41
我不认为你需要太多的设计。为什么不只是put two app clients on the same user pool?然后,您只需针对来自两个应用程序的相同用户池,使用不同的应用程序ID。用户将被共享,每个应用程序都会得到其单独的客户端配置。
https://stackoverflow.com/questions/60888787
复制相似问题