当前位置:网站首页>DRF--JWT2-用户认证-自定义控制simpjwt返回内容
DRF--JWT2-用户认证-自定义控制simpjwt返回内容
2022-07-21 12:39:00 【chuntian_tester】
需求:需要返回的响应中包括id,username,token
1. 查看/rest_framework_simplejwt/settings.py:12源码,发现使用的TOKEN_OBTAIN_SERIALIZER控制输出,
2.找到这个类:发现返回的data里定义了“refresh"和“access"字段,所以重写该类,然后将settings.py里的使用到的规则指定我们重写的类规则即可
3. 重写类规则
from django.contrib.auth.models import update_last_login
from rest_framework_simplejwt.serializers import TokenObtainSerializer
from rest_framework_simplejwt.settings import api_settings
from rest_framework_simplejwt.tokens import RefreshToken
class TokenObtainPairSerializer(TokenObtainSerializer):
token_class = RefreshToken
def validate(self, attrs):
data = super().validate(attrs)
refresh = self.get_token(self.user)
# data["refresh"] = str(refresh)
data["token"] = str(refresh.access_token)
data['user_id'] = str(self.user.id)
data['user_name'] = str(self.user.username)
if api_settings.UPDATE_LAST_LOGIN:
update_last_login(None, self.user)
return data
4. settings.py中指定我们使用的规则即可
5. 验证
类视图中指定权限
边栏推荐
猜你喜欢
随机推荐
Records of relevant tools for flow analysis
连续子数组的最大和升级(二)
读Zepto源码之Touch模块
实景三维渐成测绘大趋势,数据存储迎来新风口
第七节 数据字典:Hash哈希 跟着大宇学Redis--------目录帖
C语言学生成绩管理系统
300. 最长递增子序列
模板继承与导入
MySQL view stored procedures and functions
《安富莱嵌入式周报》第274期:2022.07.11--2022.07.17
ORM初识和数据库操作
How to manage login status? Login process?
微信小程序反编译研究
泰山OFFICE技术讲座:如何给页面设置边框、背景
Shell基础
软考 系统架构设计师 简明教程 | 软件开发模型
Mapstruct code generator realizes object transformation
Number和Math类的常用方法
基于MIPI的高性能成像系统
IO多路复用