我目前有一个利用Django REST Framework的大型Django项目 .
我有另一个较小的Django项目,我想 Build 一个不直接共享数据库而是通过API获取必要数据的主项目 .
我想覆盖较小项目的AUTHENTICATION_BACKEND,并让它使用较大的API auth endpoints 作为验证器 .
基本上这个过程如下:
-
用户尝试使用大型Django-DRF项目中的用户凭据登录小型Django项目 .
-
Small Django项目向大型Django-DRF项目发送API登录请求 .
-
大型Django-DRF项目返回API令牌和序列化的用户信息 .
-
Small Django项目使用来自大型Django-DRF项目响应的信息自动添加/更新用户到其数据库 .
-
Small Django项目使用令牌响应用户客户端,以便来自Small Django的AJAX请求项目's pages can be made directly to large Django-DRF project' s endpoints .
是否有适用于此用例的现有插件,还是应该编写自己的AUTHENTICATION_BACKEND?
1 回答
听起来你可能想看看django-rest-framework-jwt . 这将允许您使用JWT作为您的身份验证机制,可以轻松处理您的情况 . 该项目实际上提供了一个专门为您所需的 endpoints ,
verify_jwt_token
. 根据documentation:所以你的工作流程将是这样的:
用户对较大的API进行身份验证
用户从身份验证请求中收回JWT
用户将JWT以及每个请求发送到较小的API
较小的API在收到JWT后会将其转发到较大API中的
verify_jwt_token
endpoints