Установить Django REST Frmework JWT в печенье
Я использую djangorestframework-jwt для аутентификации пользователей. Я переопределил встроенный JSONWebTokenAPIView
, Чтобы также возвращать сведения о пользователе в ответе. И я также устанавливаю маркер в печенье, на мой взгляд.
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():
user = serializer.object.get('user') or request.user
token = serializer.object.get('token')
response_data = {
'access_token': token,
'user': UserInfoSerializer(user).data
}
response = Response(response_data, status=status.HTTP_200_OK)
if api_settings.JWT_AUTH_COOKIE:
expiration = (datetime.utcnow() + api_settings.JWT_EXPIRATION_DELTA)
response.set_cookie(api_settings.JWT_AUTH_COOKIE,
response.data['access_token'],
expires=expiration,
httponly=True)
return response
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Он отлично работает на сервере Django. Я могу видеть маркер в файлах cookie, когда я проверяю api с помощью REST browseable api view. Но мое приложение frontend (React) работает на localhost: 3000, и когда я нажимаю этот api с моего сервера frontend, я получаю ответ success, но маркер не устанавливается в печенье.
Нужно ли мне также установить домен cookie?
1 ответ:
Мне нужно было установить
withCredentials: true
на frontend и backend.Нашел ответ благодаря этому сообщению Django cookies не сохраняются в браузере