簡體   English   中英

DRF 測試中 jwt 令牌的身份驗證錯誤 401

[英]Authentication error 401 for jwt token in DRF tests

我在測試中獲取 get 方法的 jwt 授權時遇到問題。 我的測試:

class ImageViewsTests(APITestCase):
def setUp(self):
    self.test_user = User.objects.create_user(**TEST_USER)
    TEST_IMAGE['created_by'] = self.test_user
    self.temp_image = Image.objects.create(**TEST_IMAGE)
    self.token = RefreshToken.for_user(self.test_user)
    
    
def test_images_list(self):
    url = reverse('jwt-create')

    client = APIClient()
    client.credentials(HTTP_AUTHORIZATION=f'JWT {self.token.access_token}')
    response = self.client.get('/image/', data={'format': 'json'})
    
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    self.assertEqual(response.data, TEST_IMAGE)

測試返回 AssertionError: 401 != 200。令牌正確返回,但在標頭中不起作用。 例如,在 Postman 中一切都很好。 郵差

我做了其他類似的事情,我也沒有得到授權

def test_images_list(self):
    url = reverse('jwt-create')

    client = APIClient()
    resp = self.client.post(url, {'email':TEST_USER['email'], 'password':TEST_USER['password']}, format='json')
    
    self.assertEqual(resp.status_code, status.HTTP_200_OK)
    
    client.credentials(AUTHORIZATION=f'JWT {resp.data["access"]}')
    
    response = self.client.get('/image/', data={'format': 'json'})
    
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    self.assertEqual(response.data, TEST_IMAGE)

我正在使用 Djoser、jwt、DRF。 我在哪里犯錯?

試試這個來設置憑據:

self.token = RefreshToken.for_user(self.test_user)
client.credentials(HTTP_AUTHORIZATION=f'Bearer {self.token.access_token}')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM