django rest框架json web token注销功能

Posted

技术标签:

【中文标题】django rest框架json web token注销功能【英文标题】:Django rest framework json web token logout function 【发布时间】:2018-04-18 04:19:54 【问题描述】:

首先,我对 django rest framework jwt 还是新手,所以如果我错了,请原谅我的愚蠢。

我想知道如何为 jwt 创建注销功能,因为当用户想要注销并切换帐户时,他们将需要此功能。

根据我在许多其他注销帖子中看到的内容, - 不需要注销功能,因为令牌未保存在服务器端,因此关闭和打开将导致必须再次登录。 - jwt 正在使用过期时间,因此它会在令牌过期时注销,前提是验证令牌设置为 True

但我想要的是有一个记住我的功能,用户在关闭并再次打开时将保持登录状态,因为其中一个建议是将验证令牌设置为 false 或将过期时间设置为几周。但是如果令牌过期时间还没有到达,那么用户如何注销呢?

由于我使用的是 jwt 和 djoser,djoser 的注销功能仅适用于 drf,不适用于 jwt。由于我也将 api 用于移动设备,因此用户在打开应用程序(假设他们第一次登录)时都会保持登录状态,例如 facebook 和许多其他应用程序。

请给我这方面的指导。谢谢

【问题讨论】:

您好,欢迎来到 ***。请花一些时间阅读帮助页面,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。 【参考方案1】:

理想情况下,您应该以无状态方式使用 JWT,这意味着没有会话(JWT 令牌有过期时间,过期后将失效,客户端需要实现一些机制来重新认证或扩展令牌)。鉴于此,您根本不需要注销。

【讨论】:

如果用户想注销以登录另一个帐户怎么办?例如:在手机/移动设备上 @JinNiiSama 那么客户端应用程序应该丢弃JWT(注销)并通过登录为另一个帐户请求新的JWT。 是的,@ARJMP 所说的

以上是关于django rest框架json web token注销功能的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django rest 框架中验证 jwt 身份验证中的令牌

Django rest框架拉入外部json数据

django rest框架json序列化器

来自 django rest 框架的 JSON

Json解析django rest框架

使用 Django REST 框架序列化程序将 JSON 请求保存到数据库