#django #django-rest-framework
#django #django-rest-framework
Вопрос:
Мне нужно поместить токен в request.session, а затем получить его из моего кода
request.session.get('id_token')
Как это сделать с помощью drf APIClient()
? Я пробовал это
self.client = APIClient()
self.client.session['id_token'] = 'some key'
но это не работает
Ответ №1:
Идентификаторы сеанса создаются при аутентификации и отправляются клиенту. Затем клиент может отправлять их при последующих запросах как часть заголовка
ApiClient DRF наследует класс клиента Django, поэтому вы можете инициализировать его с помощью заголовков
apc = APIClient(SESSION_ID='ljw3r23j-slzljsdf')
А затем в вашем бэкэнд-коде, где у вас есть доступ к вашему запросу, вы можете получить к нему доступ через любой .headers or .META
из атрибутов. Это будет зависеть от вашей версии Django
Django 2.2
session = requests.headers.get('SESSION_ID')
< Django 2.2
session = request.META.get('SESSION_ID')