Django 的身份验证后端和 DRF 的令牌身份验证只是同一件事的两种方法吗?

Are Django's auth backend and DRF's token authentication just two approaches to the same thing?

在我的 django web 应用程序中,它分为前端和后端项目,我目前正在使用自定义 AuthBackend class,它扩展了 django 的 BaseBackend,以及 DRF 的 UserTokenAuthentication。

我认为我只需要这些方法中的一种是对的吗?或者是否有理由使用 django 的 login() 函数,即使我使用的是 DRF 的令牌身份验证?我知道它将用户存储在会话中,所以我想这会使传递和验证令牌毫无意义?

我最好的方法是什么?干杯:)

在命名空间和用途方面存在差异。

在 Django 中,auth 后端仅处理基于会话的身份验证,而 rest framework auth 不仅支持基于会话的身份验证,还支持令牌(JWT、OAuth)和基于基本身份验证的身份验证。

此外,Django auth 后端在通过中间件时对请求进行身份验证,而 rest framework 在没有中间件的情况下进行身份验证。

如果您打算将后端和前端分开,请选择基于令牌的身份验证。如果只使用token-based auth来认证,就没有理由使用Django的登录功能。