如何测试使用django-rest-auth令牌身份验证的API?

时间:2019-03-28 06:29:55

标签: django-rest-framework django-rest-auth

我正在使用django-rest-auth进行身份验证,并使用其提供的令牌进行授权。我使用了django-rest提供的一些Permission_class。 我在每种方法之前都在views.py中添加了日志。

views.py

@api_view(['GET'])
@authentication_classes((TokenAuthentication))
@permission_classes((permissions.IsAuthenticated,))

在测试那些api时,如何进行身份验证以访问views.py内部的方法。因为未经身份验证,它会禁止403。 如何在测试中模拟身份验证。

1 个答案:

答案 0 :(得分:2)

首先,您需要创建一个用户和该用户的令牌, 之后,使用令牌作为标头创建一个django.test.Client

from rest_framework.authtoken.models import Token                                  

from django.test import Client 

self.user = Usuario.objects.create_user(                                   
    nome='test',                                                                                   
    email='test@email.com',                                                                   
    password='test',                                                    
)                                                                             
token, created = Token.objects.get_or_create(user=self.user)                
self.client = Client(HTTP_AUTHORIZATION='Token ' + token.key)

然后,您可以使用此经过身份验证的客户端发出任何请求。

self.client.get('url')