当前位置: 首页 > news >正文

【Django学习】(十六)session_token认证过程与区别_响应定制

一、认识session与token

这里就直接引用别人的文章,不做过多说明

网络应用中session和token本质是一样的吗,有什么区别? - 知乎

二、token响应定制

在全局配置表中配置

'DEFAULT_AUTHENTICATION_CLASSES': [# 指定jwt Token认证'rest_framework_jwt.authentication.JSONWebTokenAuthentication'

rest_framework_jwt/views.py中

 查看ObtainJSONWebToken类:

发现里面引用了JSONWebTokenSerializer序列化器类

​ users应用的url.py

引用obtain_jwt_token

from django.urls import path
from interfaces import views
from  rest_framework_jwt.views import obtain_jwt_tokenurlpatterns = [path('login/', obtain_jwt_token)
]

 发现rest_framework_jwt/views.py中有提供post方法:

 登录之后发现输出只有返回token字段

 如果我们想让user_id和user_name也输出的话,我们就要定制输出了

查看rest_framework_jwt/views.py中post方法里面有调用jwt_response_payload_handler方法

​ 

 

 

 如果不需要改写,可以在项目setting.py文件中直接引用

JWT_AUTH={'JWT_RESPONSE_PAYLOAD_HANDLER':'rest_framework_jwt.utils.jwt_response_payload_handler',
}

 终于在rest_framework_jwt.utils.py文件中发现了jwt_response_payload_handler

 所以我们要改写这个方法:

本地项目的utils文件夹中新建一个handler_jwt_response.py

def jwt_response_payload_handler(token, user=None, request=None):"""Returns the response data for both the login and refresh views.Override to return a custom response such as including theserialized representation of the User.Example:def jwt_response_payload_handler(token, user=None, request=None):return {'token': token,'user': UserSerializer(user, context={'request': request}).data}"""return {'user_id': user.id,'user_name': user.username,'token': token}

 改写之后,还要在全局配置表里修改引用路径

JWT_AUTH={'JWT_RESPONSE_PAYLOAD_HANDLER':# 'rest_framework_jwt.utils.jwt_response_payload_handler','utils.handler_jwt_response.jwt_response_payload_handler',
}

运行得到想要的结果

相关文章:

【Django学习】(十六)session_token认证过程与区别_响应定制

一、认识session与token 这里就直接引用别人的文章,不做过多说明 网络应用中session和token本质是一样的吗,有什么区别? - 知乎 二、token响应定制 在全局配置表中配置 DEFAULT_AUTHENTICATION_CLASSES: [# 指定jwt Token认证rest_framew…...

ai创作系统CHATGPT支持GPT4.0+支持ai绘画(MJ)+ai绘画(SD)集合几百种AI智能工具

生成的AI绘画 非常的奈斯 包括GPT...

linux安装mysql

linux快速安装mysql 安装之前检测系统是否有自带的MySQL #检查是否安装过MySQL rpm -qa | grep mysql #检查是否存在 mariadb 数据库(内置的MySQL数据库),有则强制删除 rpm -qa | grep mariadb #强制删除 rpm -e --nodeps mariadb-libs-5.5…...

mysql主从复制原理及应用

一、主从复制简介 MySQL主从复制是一种异步、基于日志的、单向的数据库复制技术,它通过在主服务器上启用二进制日志并将其发送给一个或多个从服务器,实现了从服务器与主服务器之间的数据同步。主服务器将所有的数据库操作记录到二进制日志中&#xff0c…...

《Kubernetes故障篇:unable to retrieve OCI runtime error》

一、背景信息 1、环境信息如下: 操作系统K8S版本containerd版本Centos7.6v1.24.12v1.6.12 2、报错信息如下: Warning FailedCreatePodSandBox 106s (x39 over 10m) kubelet (combined from similar events): Failed to create pod sandbox: rpc error: …...

el-upload上传图片和视频,支持预览和删除

话不多说&#xff0c; 直接上代码&#xff1a; 视图层&#xff1a; <div class"contentDetail"><div class"contentItem"><div style"margin-top:5px;" class"label csAttachment">客服上传图片:</div><el…...

clickhouse MPPDB数据库 运维实用SQL总结III

文章目录 CH问题处理使用remote函数报URL "xxxx:9000" is not allowed in configuration fileclickhouse MPPDB数据库 运维实用SQL总结 clickhouse MPPDB数据库 运维实用SQL总结II clickhouse MPPDB数据库 运维实用SQL总结III CH server相关的配置参见 : clickhous…...

ARM和MIPS的区别

ARM和MIPS的区别主要有以下几方面&#xff1a; 指令集&#xff1a;ARM支持32位和64位指令&#xff0c;而MIPS同时支持32位和64位指令。除法器&#xff1a;MIPS有专门的除法器&#xff0c;可以执行除法指令&#xff0c;而ARM没有。寄存器&#xff1a;MIPS的内核寄存器比ARM多一…...

TypeScript -- 类

文章目录 TypeScript -- 类TS -- 类的概念创建一个简单的ts类继承 public / private / protected-- 公共/私有/受保护的public -- 公共private -- 私有的protected -- 受保护的 其他特性readonly -- 只读属性静态属性 -- static修饰ts的getter /setter抽象类abstract TypeScrip…...

【LeetCode】124.二叉树中的最大路径和

题目 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root &…...

Linux命令总结

1.目录相关命令 绝对路径&#xff1a; 如/etc/init.d当前目录和上层目录&#xff1a; ./ …/主目录&#xff1a; ~/切换目录&#xff1a; c 2.进程相关命令 查看当前进程&#xff1a; ps ps -ef&#xff08;system v 输出&#xff09;ps -aux bsd 格式输出ps -ef|grep pid 执…...

SpringBoot临时属性设置

在Spring Boot中&#xff0c;可以通过设置临时属性来覆盖应用程序中定义的属性。这在某些情况下很有用&#xff0c;例如在命令行中指定配置参数或在测试环境中覆盖默认值。 你可以使用--&#xff08;双破折号&#xff09;语法来设置临时属性。以下是一些示例&#xff1a; 1. …...

【Python小知识】如何解决代理IP在多线程环境下的并发问题?

前言 在多线程环境下&#xff0c;使用代理IP可能会出现并发问题。具体而言&#xff0c;多个线程可能同时使用同一个代理IP&#xff0c;导致代理IP被封禁或无法访问。为了解决这个问题&#xff0c;我们需要使用一个代理IP池来管理可用的代理IP&#xff0c;并在多线程环境下动态…...

redis常见面试汇总

目录 Redis 适合的场景 Redis 不适合的场景 3、Redis 有哪些常见的功能&#xff1f; 什么是缓存穿透&#xff1f;怎么解决&#xff1f; 什么是缓存雪崩&#xff1f;该如何解决&#xff1f; 参考文献&#xff1a; Redis 适合的场景 缓存&#xff1a;减轻 MySQL 的查询压力…...

子数组的解释与专题

子数组&#xff1a;指在一个数组中&#xff0c;选择一些连续的元素组成的新数组。 例题一&#xff1a;6900. 统计完全子数组的数目 给你一个由 正 整数组成的数组 nums 。 如果数组中的某个子数组满足下述条件&#xff0c;则称之为 完全子数组 &#xff1a; 子数组中 不同 …...

PHP: 开发入门macOS系统下的安装和配置

安装Homebrew 安装 ~~友情提示&#xff1a;这个命令对网络有要求&#xff0c;可能需要翻墙或者用你的手机热点试试&#xff0c;或者把DNS换成&#xff08;114.114.114.114 和 8.8.8.8&#xff09; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebr…...

在CentOS下安装docker

1&#xff09;在Cent OS安装docker先有一个Cent OS 7.6系统 这个很重要&#xff0c;不同版本按照的时候是不一样的。 2&#xff09;查看CentOS版本 cat /etc/redhat-releas 3&#xff09;用root账户登录进去配置国内yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http:…...

[JavaWeb]SQL介绍-DQL查询数据

SQL介绍-DQL查询数据 一.基础查询二.条件查询三.排序查询1.聚合函数2.分组查询 四.分页查询 DQL查询基础的语法结构如下&#xff1a; SELECT字段列表 FROM表名列表 WHERE条件列表 GROUP BY分组字段 HAVING分组后条件 ORDER BY排序字段 LIMIT分页限定一.基础查询 说明语法查询…...

[containerd] 在Windows上使用IDEA远程调试containerd, ctr, containerd-shim

文章目录 1. containerd安装2. 源码编译3. 验证编译的二进制文件是否含有调试需要的信息3.1. objdump工具验证3.2. file工具验证3.3. dlv工具验证 4. debug 1. containerd安装 [Ubuntu 22.04] 安装containerd 2. 源码编译 主要步骤如下&#xff1a; 1、从github下载containe…...

Verilog语法学习——LV4_移位运算与乘法

LV4_移位运算与乘法 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 题目描述&#xff1a; 已知d为一个8位数&#xff0c;请在每个时钟周期分别输出该数乘1/…...

Windows Server TLS安全加固:注册表三步禁用Sweet32漏洞

1. 这不是“打补丁”&#xff0c;而是给Windows Server的SSL/TLS协议栈做一次外科手术你有没有遇到过这样的情况&#xff1a;安全扫描工具突然报出一堆红色高危漏洞&#xff0c;CVE-2016-2183&#xff08;Sweet32&#xff09;、CVE-2015-2808&#xff08;Logjam&#xff09;、C…...

Unity Dropdown字体高度适配全解:从结构原理到三套实操方案

1. 为什么改Dropdown字体高度会让人抓狂——从UI失衡说起在Unity项目做到中后期&#xff0c;UI团队突然甩来一张截图&#xff1a;“这个下拉菜单文字挤在一起&#xff0c;用户反馈看不清、点不准&#xff0c;上线前必须调”。你点开Hierarchy&#xff0c;选中Dropdown组件&…...

Android设备标识获取难题:个人开发者如何合规获取OAID?

Android设备标识获取难题&#xff1a;个人开发者如何合规获取OAID&#xff1f; 【免费下载链接】Android_CN_OAID 安卓设备唯一标识解决方案&#xff0c;可替代移动安全联盟&#xff08;MSA&#xff09;统一 SDK 闭源方案。包括国内手机厂商的开放匿名标识&#xff08;OAID&…...

终极Android设备标识解决方案:免费获取OAID的完整指南

终极Android设备标识解决方案&#xff1a;免费获取OAID的完整指南 【免费下载链接】Android_CN_OAID 安卓设备唯一标识解决方案&#xff0c;可替代移动安全联盟&#xff08;MSA&#xff09;统一 SDK 闭源方案。包括国内手机厂商的开放匿名标识&#xff08;OAID&#xff09;、海…...

写给前端的 CANN-AscendSiPBoost:昇腾信号处理加速库到底是啥?

写给前端的 CANN-AscendSiPBoost&#xff1a;昇腾信号处理加速库到底是啥&#xff1f; 之前有兄弟做音频处理&#xff0c;问我&#xff1a;“哥&#xff0c;昇腾上有没有信号处理的加速库&#xff1f;FFT、滤波这些。” 好问题。今天一次说清楚。 AscendSiPBoost 是啥&#xff…...

CANN/asc-devkit向量取反API

asc_neg 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/ca…...

智能网盘直链解析工具:免会员下载加速的全新解决方案

智能网盘直链解析工具&#xff1a;免会员下载加速的全新解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

深入理解Istio架构:控制平面与数据平面核心组件全解析

深入理解Istio架构&#xff1a;控制平面与数据平面核心组件全解析 【免费下载链接】istio-handbook Istio服务网格进阶实战 项目地址: https://gitcode.com/gh_mirrors/is/istio-handbook Istio作为新一代服务网格&#xff08;Service Mesh&#xff09;的领航者&#xf…...

Parsec虚拟显示驱动实战教程:5步创建完美游戏串流显示环境

Parsec虚拟显示驱动实战教程&#xff1a;5步创建完美游戏串流显示环境 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd Parsec虚拟显示驱动&#xff08;Parsec VDD&#xff09;是一…...

QQ音乐加密音频一键解密:3步让Mac用户重获音乐自由

QQ音乐加密音频一键解密&#xff1a;3步让Mac用户重获音乐自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换…...