You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF应用集成Google OAuth登录时触发Invalid token type错误

解决all-auth + dj-rest-auth Google OAuth登录的Token解码错误

问题描述

在DRF(Django REST Framework)应用中基于all-auth和dj-rest-auth实现的Google OAuth登录功能突然失效,抛出以下错误:

raise DecodeError(f"Invalid token type. Token must be a {bytes}")

回溯信息显示错误出现在JWT处理环节,尝试参考教程重新操作也无法复现问题。

可能的排查与解决方向

  • 检查Token传递与类型:确认前端传入的Google ID Token是否为原始字符串,是否在传递过程中被意外处理成非bytes类型。all-auth解码时要求token为bytes,若前端传的是字符串,可在后端处理时先转码:token.encode('utf-8')。
  • 排查依赖版本冲突:查看django-allauth、dj-rest-auth及相关JWT依赖(如djangorestframework-simplejwt)的版本兼容性。部分版本更新会修改token处理逻辑,可尝试锁定到之前正常工作的版本组合,例如:
    django-allauth==0.54.0
    dj-rest-auth==2.2.7
    djangorestframework-simplejwt==5.2.2
    
  • 核对JWT配置:检查项目settings.py中的JWT相关配置,比如SIMPLE_JWT下的AUTH_HEADER_TYPES是否设置为('Bearer',),避免因token前缀错误导致解码失败。
  • 验证Google OAuth应用配置:确认Google Cloud Console中的客户端ID、密钥是否正确,授权回调地址与项目配置一致,且已开启必要的API(如Google Identity API)。
  • 调试解码流程:在all-auth的token解码相关代码中添加日志,打印传入token的类型和内容,定位是否为输入数据不符合预期导致的错误。

内容的提问来源于stack exchange,提问作者Matheus Lopes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:17:44