python Web生成token的几种方法,你确定不进来看看?
2024-09-05 07:34:34
1.使用rest_framework_jwt
from rest_framework_jwt.settings import api_settings
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
payload = jwt_payload_handler("存储的信息")
token = jwt_encode_handler(payload)
这种方式相比较另外一种方式比较简单,但这种方式生成的token无法根据我们的需求设置过期时间,界限来的一种方法可以为token设置过期时间。
2.使用TimedJSONWebSignatureSerializer
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from django.conf import settings # serializer = Serializer(秘钥, 有效期秒)
serializer = Serializer(settings.SECRET_KEY, 300)
# serializer.dumps(数据), 返回bytes类型
token = serializer.dumps({'mobile': '18512345678'})
token = token.decode() # 检验token
# 验证失败,会抛出itsdangerous.BadData异常
serializer = Serializer(settings.SECRET_KEY, 300)
try:
data = serializer.loads(token)
except BadData:
return None
这种方式可以生成一个具有时效的token,我们可以根据需求悬着相应的方法
最新文章
- Java for LintCode 颜色分类
- Gson 解析列表
- 喝咖啡写脚本,顺便再加一点点CSS语法糖 2.五分钟学会Less
- c# 数据库操作学习
- CentOS6.5+php5.3听云安装过程
- vi编辑器使用介绍
- Problem E: Erratic Ants
- JSP通用7动作命令
- MySQL的char和varchar
- 201521123102 《Java程序设计》第1周学习总结
- 2017ecjtu-summer training #2 CodeForces 608B
- JavaScript(第二十一天)【DOM元素尺寸和位置】
- ucloud发送短信的php sdk
- 一文了解Python的线程
- mysql 关于数据库和数据表的基本操作
- CUDA 计算线程索引的一般公式
- [JavaScript] Frequently used method or solutions for issues
- python 实践项目
- 浅谈ESB中的DataRow、DataSet、DataBag 、DataBox
- BZOJ 4009: [HNOI2015]接水果
热门文章
- 02-11Android学习进度报告十一
- 学习笔记(5)- ubuntu对话语料
- Linux服务器yum安装mysql
- Linux kali安装或更新之后出现乱码
- 前端开发中的 MVC、MVP、MVVM 模式
- python实现队列(queue)
- 安装luarocks安装驱动
- 吴裕雄--天生自然TensorFlow2教程:全连接层
- Codeforces Round #585 (Div. 2)E(状态压缩DP,思维)
- Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)D(树状数组)