django-rest-framework 令牌授权和注销

django-rest-framework Token Auth and logout

据了解,obtain_auth_token 视图用作登录功能。您提供凭据并取回令牌。注销将是什么?我应该在注销时删除令牌吗?最佳做法是什么?

如果删除没问题,那么如何同时处理多个客户端。比如说,用户从移动设备注销,但想在网络上保持登录状态。 Token 模型当前与 User.

具有 OneToOne 关系

请多多指教。谢谢

Django REST framework 提供的TokenAuthentication 旨在用作非常简单的令牌 身份验证。我的意思是,你得到

  • 将API消费者与用户联系起来的简单令牌
  • ...那个doesn't rotate by default
  • ...那个doesn't expire by default
  • ...在 API 消费者之间共享(单个令牌)

如果您正在寻找比这更高级的东西,您通常必须研究不同的令牌身份验证方法。这可以像继承标准 TokenAuthentication 类 和视图(如链接)一样简单,但 Token 模型不容易交换。这意味着将 user 字段更改为 ForeignKey,允许您为一个用户拥有多个令牌,并不容易实现。

幸运的是,Django REST 框架 does support other authentication methods, such as OAuth and JSON Web Tokens, both of which support multiple tokens for users. You can find a comparison of the common authentication classes at this Stack Overflow answer