django rest_framework_jwt和LoginRequiredMixin不兼容问题

本文探讨了在使用Django REST框架时,JWT认证与LoginRequiredMixin不兼容导致的问题。通过分析源码发现,LoginRequiredMixin在API视图的dispatch方法中未进行DRF的认证就直接处理无权限情况。解决方案是对dispatch方法进行重写,以解决多继承导致的冲突。
摘要由CSDN通过智能技术生成

起因
添加jwt作为认证方式 postman测试某get接口 提示未认证 headers里确实加了
换浏览器 登录后直接输入url测试该get接口 ok
折腾半天源码(还是自己菜) 调用链真的长=。=
不敢说理清了 毕竟看到super或者能望文生义的函数就收手 好歹是能修复了 本质还是多继承问题

jwt的authentication依赖于rest_framework
在这里插入图片描述
rest_framework提供的ApiView的dispatch方法中进行了authenticatation_class的认证 调用链较长 只取前几次的截图
而LoginRequiredMixin的dispatch调用更早 没进行drf的认证(没进super) 就直接handle_no_permission()了
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值