如何使用Djangographqlsocialauth库获取刷新令牌

2024-10-03 13:19:01 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在使用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
        }
      ]
    }
  ]
}

提前感谢你的帮助


Tags: django用户importauthstringsocial变体provider
1条回答
网友
1楼 · 发布于 2024-10-03 13:19:01

我的解决办法如下:

    # Social authentication
class SocialAuth(graphql_social_auth.SocialAuthMutation):
    token = graphene.String()
    refresh_token = graphene.String()

    @classmethod
    def resolve(cls, root, info, social, **kwargs):
        if social.user.refresh_tokens.count() >= 1:
            return cls(token=get_token(social.user), refresh_token=social.user.refresh_tokens.last())
        else:
            return cls(token=get_token(social.user), refresh_token=create_refresh_token(social.user))

相关问题 更多 >