简介
生成token, 就是把 某个东西 以某个key值(密钥) 加密 一下
简单的生成token举例
下面用python举例一下
# 安装
pip install pyjwt==1.7.1 (新版本的不行)
输入python,在python解析器里,运行生成token(要传payload参数,和key)
import jwt
paylod={"name":"taoker111"}
token =jwt.encode(payload=paylod,key="tk123")
# 解码 得到payload
# jwt.decode(token,key="123")

Django_rf的simplejwt
Django 3.1 版本之前是使用rest_framework_jwt 库, 之后版本的django会遇到这个报错
Could not import 'rest_framework_jwt.authentication.JSONWebTokenAuthentication' for API setting 'DEFAULT_AUTHENTICATION_CLASSES'. ImportError: cannot import name 'smart_text' from 'django.utils.encoding'
djangorestframework-simplejwt 库提供了与 rest_framework_jwt 类似的 JSON Web Token (JWT) 认证功能。
1.安装
djangorestframework-simplejwt 库(如果尚未安装):
pip install djangorestframework-simplejwt
2.JWT 库默认的参数
djangorestframework-simplejwt 默认使用一组默认值,但你可以根据需要设置这些参数。
如:
- 默认token有效期为 5分钟
- 生成token密钥SIGNING_KEY默认为 :setting.py 中, 创建项目就生成好了的一个 key值
- 参数:AUTH_HEADER_TYPES 指定前缀,默认为Bearer
(from rest_framework_simplejwt.settings import )这么写然后点击settings

如下是AUTH_HEADER_TYPES 前缀的意思,如果不配置,就是 Bearer开头
(后续可以登录成功后的access)使用pyjwt库来,用你的key来解码试试,它的信息包含这些
{'token_type': 'access', 'exp': 1689661573, 'iat': 1689661513, 'jti': 'eedea8e9d74b4da8b9e1932624952ee8', 'user_id'

本文介绍了如何在Django项目中使用JSONWebTokens(JWT)进行身份验证,包括使用pyjwt库生成和解码token,DjangoRESTFrameworksimplejwt库的安装与配置,以及自定义登录接口和序列化器以扩展token信息。此外,还提到了认证设置和刷新令牌的使用。
&spm=1001.2101.3001.5002&articleId=131785957&d=1&t=3&u=d7d5908f24de425b9b35c87783b409b7)
3523

被折叠的 条评论
为什么被折叠?



