问题描述
嗨,我正在使用 django-graphql-social-auth 库,每当我使用此更改创建社交用户时:
import graphene
import graphql_social_auth
class Mutations(graphene.ObjectType):
social_auth = graphql_social_auth.socialAuthJWT.Field()
和这个 Graphql 突变:
mutation SocialAuth($provider: String!,$accesstoken: String!) {
socialAuth(provider: $provider,accesstoken: $accesstoken) {
social {
uid
}
token
refreshToken
}
}
我收到此错误:
{
"errors": [
{
"message": "Cannot query field \"refreshToken\" on type \"SocialAuthJWT\".","locations": [
{
"line": 29,"column": 5
}
]
}
]
}
预先感谢您的帮助。
解决方法
我是这样解决的:
class SocialAuth(graphql_social_auth.SocialAuthMutation):
user = graphene.Field(NewUserType)
token = graphene.String()
refresh_token = graphene.String()
@classmethod
def resolve(cls,root,info,social,**kwargs):
try:
from graphql_jwt.shortcuts import get_token,create_refresh_token
except ImportError:
raise ImportError(
'django-graphql-jwt not installed.\n'
"Use `pip install 'django-graphql-social-auth[jwt]'`.")
return cls(user=social.user,token=get_token(social.user),refresh_token=create_refresh_token(social.user))