如何在graphene-django GraphQLTestCase中使用django-grahql-jwt进行身份验证?

雪佛兰

我正尝试根据石墨烯django文档测试我的突变。该变体可以与@login_requireddecorator一起使用,并且存在问题,因为任何登录测试方法均无效。我试着用self.client.loginself.client.force_login我什至做了一个tokenAuth突变,并在那里硬编码了一些凭证,它也不起作用。用户仍然是匿名用户。

def test_create_member_mutation(self):
    response = self.query(
        '''
        mutation createMember($firstName: String) {
            createMember(firstName: $firstName) {
                member {
                    id
                }
            }
        }
        ''',
        op_name='createMember',
        variables={'firstName': 'Foo'}
    )

    self.assertResponseNoErrors(response)

这就是我在测试中解决问题的方式。

您可以在的headers关键字参数中传递为测试用户制作的令牌self.query()

from django.contrib.auth import get_user_model
from graphene_django.utils import GraphQLTestCase
from graphql_jwt.shortcuts import get_token


class ExampleTests(GraphQLTestCase):

    def test_create_member_mutation(self):
        token = get_token(get_user_model().objects.get(pk=1))
        headers = {"HTTP_AUTHORIZATION": f"JWT {token}"}

        graphql = '''
            mutation createMember($firstName: String) {
                createMember(firstName: $firstName) {
                    member {
                        id
                    }
                }
            }
        '''

        respsone = self.query(
            graphql,
            op_name='createMember',
            variables={'firstName': 'Foo'},
            headers=headers,
        )
        self.assertResponseNoErrors(response)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Django频道上使用令牌身份验证对Websocket进行身份验证?

如何在Django REST Framework中禁用身份验证

Django JWT身份验证:如何获取用户数据?

使用JWT进行身份验证时如何区分用户类型

如何添加身份验证中间件JWT Django?

使用令牌身份验证时如何在Django通道中的Websocket连接中对用户进行身份验证

如何使用自己的数据库用户通过Spring Security和JWT进行身份验证

django rest框架与jwt进行社交身份验证

如何在Tornado中使用OpenID进行身份验证?

使用Django REST框架进行JWT身份验证

通过API进行Django身份验证

我如何使用从登录视图获得的jwt令牌进行身份验证

如何使用第三方CAS身份验证从独立的前端与django后端(相同的域,不同的端口)对用户进行身份验证?

如何在Django中使用Pytest测试经过身份验证的POST请求

Django,在django视图中进行jwt身份验证,而不仅仅是DRF

如何使用Django进行RDS IAM身份验证?

如何通过django-microsoft-auth使用Azure AD在Django中进行身份验证

应该如何在Django中实现基于JWT的身份验证(drf和simplejwt)?

如何在Django中启用基本访问身份验证

如何在Django视图中使用龙卷风身份验证?

如何在Django REST Framework中使用身份验证

如何使用 Postman 对 Django REST Framework 进行身份验证

如何在基于类的视图中使用 django REST JWT 授权和身份验证

Django Rest 框架 JWT 身份验证

使用 Django 进行 LDAP 身份验证

如何在graphene-django解析方法中访问经过身份验证的用户?

如何使用 django-microsoft-auth 获取当前登录用户进行 Microsoft 身份验证?

使用 JWT 进行身份验证如何在 Spring Boot 中工作

如何在Django中使用经过身份验证的用户使用Javascript调用Django API