【问题标题】:django-rest-framework Token Auth and logoutdjango-rest-framework 令牌认证和注销
【发布时间】:2015-03-07 07:21:07
【问题描述】:

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

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

请给我一些建议。谢谢

【问题讨论】:

    标签: authentication token django-rest-framework


    【解决方案1】:

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

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

    幸运的是,Django REST framework does support other authentication methods,例如 OAuth 和 JSON Web Tokens,它们都支持用户的多个令牌。可以找到常见的认证类比较at this Stack Overflow answer

    【讨论】:

    • 谢谢。最初我正在考虑扩展令牌,但现在你说这不是微不足道的,我会试试django-rest-framework-jwt。看起来很有希望。