Как передать Json Web Token с пост-запросом в python? - PullRequest
0 голосов
/ 27 сентября 2019

Я тестирую свой серверный API, и я пытаюсь создать нового пользователя и с помощью его учетной записи запрашиваю у сервера токен доступа JWT, затем обновляю его и, используя новый токен доступа, добавляю новую запись в мою базу данных.

Когдая посылаю запрос вручную, как это с httpie, он работает - сервер отвечает 201 и новая ссылка создается в формате json:

http POST :8000/api/urlslist/ Authorization:'Bearer <access token>' url=time.is

Но когда я пытаюсь сделать то же самоезапрос в python-сервере отказывает мне.

    self.user = User.objects.create_user(username='Bob', password='Q@wertyuiop', email='name@example.com')

    def test_using_refreshed_api_key(self):
        # Ask for token
        response = self.client.post('/api/token', data={'username': 'Bob', 'password': 'Q@wertyuiop'})
        json_data = response.json()
        # Refresh token
        response = self.client.post('/api/token/refresh', data={'refresh': json_data['refresh']})
        json_data = response.json()
        # Add new url using refreshed token
        response = self.client.post('/api/urlslist/', \
                data={'url':'google.com'}, headers={'Authorization':'Bearer {}'.format(json_data['access'])})
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

В данный момент сервер отвечает 401 Bad Authentication.Я ожидаю, что ответ будет 201 Создан.

...