第一步、设置配置文件
1、安装在虚拟环境中安装扩展包
pip install djangorestframework-jwt
2、在drf中配置jwt
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
......
# 设置jwt的认证方式
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
.......
),
}
3、JWT_EXPIRATION_DELTA 指明token的有效期
JWT_AUTH = {
'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
}
第二步、获取token
实现步骤:
1、导入api_settings模块
2、定义token(模型类对象)方法
3、根据api_settings获取jwt_payload_handler方法
4、跟据api_settings获取jwt_encode_handler方法
5、跟据传入对象获取payload
6、根据payload获取token
7、返回token
8、在视图中调用token方法
代码实现:
def token(user):
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
payload = jwt_payload_handler(user)
token = jwt_encode_handler(payload)
user.token = token
return user