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

Django Graphql Auth突变突发报错:意外关键字参数'refresh_token'求助

解决方案

1. 检查字段名匹配问题

默认django-graphql-auth的Register突变返回字段是refresh_token(下划线命名),你查询里用的是驼峰式refreshToken。先试试把查询里的refreshToken改成refresh_token测试:

mutation Register {
    register(
        email: "appleorange@gmail.com"
        password1: "Abcd@2023"
        password2: "Abcd@2023"
    ) {
        success
        errors
        refresh_token
        token
    }
}

如果能成功,说明是字段名格式不匹配。要保留驼峰查询的话,就在schema里给字段加别名:

from graphene import String, ObjectType, Field
from graphql_auth.types import RegisterOutput

class RegisterResponse(ObjectType):
    success = Field(Boolean)
    errors = Field(String)
    token = String()
    refreshToken = String(source="refresh_token")  # 把下划线字段映射成驼峰别名

# 自定义突变返回这个类型
class CustomRegister(RegisterMutation):
    class Meta:
        output_field = RegisterResponse

2. 检查自定义Register突变的代码

如果你自己写了CustomRegister类,别在__init__方法里加refresh_token参数——父类RegisterMutation的初始化方法根本不接收这个参数,加了就会报你遇到的错。比如下面这种写法要改:

# 错误写法
class CustomRegister(RegisterMutation):
    def __init__(self, *args, refresh_token=None, **kwargs):
        super().__init__(*args, **kwargs)

# 正确写法
class CustomRegister(RegisterMutation):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

3. 彻底清理依赖重装

换版本没解决的话,大概率是缓存残留。执行以下命令彻底清理后重装指定版本:

pip uninstall django-graphql-jwt django-graphql-auth PyJWT -y
pip cache purge
# 用已知兼容的版本组合,比如:
pip install django-graphql-jwt==0.3.4 django-graphql-auth==0.4.0 PyJWT==2.7.0

4. 验证配置正确性

检查settings.py里的配置有没有问题,确保这几个库的配置都到位:

INSTALLED_APPS = [
    # 其他应用...
    'graphql_jwt',
    'graphql_auth',
]

GRAPHQL_JWT = {
    "JWT_VERIFY_EXPIRATION": True,
    "JWT_LONG_RUNNING_REFRESH_TOKEN": True,
}

AUTHENTICATION_BACKENDS = [
    'graphql_auth.backends.GraphQLAuthBackend',
    'django.contrib.auth.backends.ModelBackend',
]

内容的提问来源于stack exchange,提问作者Kalpesh Tawde

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:52:46