Django使用simpleJWT时报jwt.decode() unexpected keyword argument 'verify'错误
问题根因
你遇到的报错核心原因是djangorestframework-simplejwt版本和PyJWT依赖版本不兼容:PyJWT v2.0及以上版本移除了decode方法的verify参数,而你当前使用的旧版simplejwt还在调用该参数,因此触发参数不匹配的错误。
解决方案
根据你的使用习惯二选一即可:
- 方案一:固定兼容的PyJWT版本,执行命令
pip install PyJWT==1.7.1,降级到1.7.1版本即可直接适配你当前的simplejwt配置,无需修改业务代码。 - 方案二:升级simplejwt到最新兼容版本,执行命令
pip install --upgrade djangorestframework-simplejwt,新版simplejwt已经适配了PyJWT 2.0+的API,升级后即可解决兼容问题。
依赖调整完成后重启Django服务,即可验证token生成和鉴权流程恢复正常。
可选优化提示:你当前在类视图的方法上加
@csrf_exempt配置不生效,类视图需要给dispatch方法加装饰器,或者在路由层用csrf_exempt包裹视图对象,该问题和本次报错无关,后续遇到csrf相关报错时可调整该部分配置。
内容的提问来源于stack exchange,提问作者Mathieu S
相关产品推荐
相关产品推荐

