首页 文章

使用Django REST Framework作为Django的身份验证后端

提问于
浏览
3

我目前有一个利用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 回答

  • 2

    听起来你可能想看看django-rest-framework-jwt . 这将允许您使用JWT作为您的身份验证机制,可以轻松处理您的情况 . 该项目实际上提供了一个专门为您所需的 endpoints , verify_jwt_token . 根据documentation

    在某些微服务架构中,身份验证由单个服务处理 . 其他服务委派确认用户已登录此身份验证服务的责任 . 这通常意味着服务将从用户接收的JWT传递给身份验证服务,并在将受保护资源返回给用户之前等待JWT有效的确认 .

    所以你的工作流程将是这样的:

    • 用户对较大的API进行身份验证

    • 用户从身份验证请求中收回JWT

    • 用户将JWT以及每个请求发送到较小的API

    • 较小的API在收到JWT后会将其转发到较大API中的 verify_jwt_token endpoints

相关问题