如何在 Django 和 Python 中使用 JWT(JSON Web 令牌)来创建用于注册和登录的 REST API

Posted

技术标签:

【中文标题】如何在 Django 和 Python 中使用 JWT(JSON Web 令牌)来创建用于注册和登录的 REST API【英文标题】:How to use JWT (JSON Web Tokens) with Django and Python for creating the REST API for signup and login 【发布时间】:2019-05-25 21:54:36 【问题描述】:

我正在尝试在 Django 项目中实现 JWT(JSON Web 令牌)。但我无法达到同样的效果。您能否帮我提供一些教程或提示或链接来学习相同的内容。

我尝试在我的项目中使用 pyjwt,但是每次我点击 API 时生成的令牌对于相同的用户电子邮件地址和密码都是相同的。

【问题讨论】:

您需要提供一些代码,显示您尝试过的内容以及您遇到的问题的确切信息。 【参考方案1】:

JWT 是 Header、Payload 和 Verify Signature 三个部分的组合(见下图),它们可以携带有关用户的信息(姓名、id 等)甚至是令牌的过期时间。因此,如果这些信息都没有改变,则令牌将是相同的。

每次用户登录系统时,都会使用他们的信息(用户名、ID、电子邮件等)生成一个令牌。如果这些信息不变,则令牌不变。除非将过期时间添加到令牌中,否则每次用户登录时,都会生成一个新的过期时间并将其添加到令牌中,从而创建一个新的过期时间。当令牌过期时,客户端可以请求新的访问令牌(刷新)

链接

JWT:官网 Stateless Authentication using JWT Refresh Tokens Django REST framework JWT: 另一个支持 Django REST 框架的 JWT 身份验证的包

【讨论】:

感谢您提供这个非常有用的答案。 (y)

以上是关于如何在 Django 和 Python 中使用 JWT(JSON Web 令牌)来创建用于注册和登录的 REST API的主要内容,如果未能解决你的问题,请参考以下文章

Python 和 Django - 如何在内存和临时文件中使用

如何在python文件中,引用django1.10的model

如何使用 AJAX 或类似的东西在 Django 中使用 Python 脚本?

如何在 python 和 django 中使用 Pytz 根据给定的 UTC 偏移量转换数据和时间?

如何在django中使用python获取应用程序名称

如何在 python/django 中接收和验证 WS-Federation 令牌?