django-rest-framework 令牌认证和注销
Posted
技术标签:
【中文标题】django-rest-framework 令牌认证和注销【英文标题】:django-rest-framework Token Auth and logout 【发布时间】:2015-03-07 07:21:07 【问题描述】:据了解,obtain_auth_token
视图用作登录功能。您提供凭据并取回令牌。什么会注销?我应该在注销时删除令牌吗?最佳做法是什么?
如果删除没问题,那么如何同时处理多个客户端。比如说,用户从移动设备上注销,但想在网络上保持登录状态。 Token
模型当前与 User
具有 OneToOne 关系。
请给我一些建议。谢谢
【问题讨论】:
【参考方案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。看起来很有希望。以上是关于django-rest-framework 令牌认证和注销的主要内容,如果未能解决你的问题,请参考以下文章
Django-Rest-Framework 系统检查自定义 HTTP 标头(应用程序 - 令牌)
如何使 DRF ( Django-REST-Framework) 令牌保持不变,使其在每次页面刷新后不会丢失?
在视图集中创建的 Django-rest-framework 权限
如何在 django-rest-framework 中为 API 使用 TokenAuthentication