Просто испытал и проверил мой путь и нашел жизнеспособный рабочий ответ после 7 дней тестирования.Надеемся, что это решение может помочь кому-то еще в этом процессе.
Однако на данном этапе я должен сказать, что я провел только 1-3 успешных сеанса тестирования, и решение не было тщательно протестировано.Но до сих пор он работал на каждом из тестов.
В основном, вот несколько ключевых указателей:
- Отправка запросов POST возможна благодаря использованиюJWT Tokens , просто есть очень специфический способ заставить его работать .
- Использование классов на сервере на основе Django Rest Framework не будет работать, когда ' license_classes ((IsAuthenticated,)) * ' и ' authentication_classes ((JSONWebTokenAuthentication,)) 'включен, но будет работать, когда они отключены, если вы используете Django в качестве бэкэнда.
- Использование API_View кодов в views.py будет рабочим решением, позволяющим использовать оба missions_classes ((IsAuthenticated,)) 'и' authentication_classes ((JSONWebTokenAuthentication,)) 'должно быть полностью включено.
- В запросе отправки с React Frontend, либо сAXIOS или FETCH, кажется, что он очень хорошо работает, когда вы включаете «Content-Type»: «application / x-www-form-urlencoded» вместо «Content-Type»: «application / json» вЗаголовки вашего запроса POST.
Образцы кодов образца ключа для заметок:
A.FRONTEND --- РЕАКЦИЯ
// HANDLES "POST" REQUESTS CONFIGS
let postBackendConfig = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Authorization: process.env.REACT_APP_JWT_AUTH0_HEADER + " " + auth0Token,
},
};
B.ОБРАТНАЯ СВЯЗЬ --- РАМКА ОТДЫХА DJANGO
views.py
@csrf_exempt
@permission_classes((IsAuthenticated, ))
@authentication_classes((JSONWebTokenAuthentication,))
def newsubmission(request):
if request.method == 'POST':
data = JSONParser().parse(request)
serializer = SubmissionsSerializer(data=data)
if serializer.is_valid():
submitted = serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
Последний ключевой элемент, который стоит отметить, - отправка / получение Заголовок авторизации , что очень важно для обеспечения того, чтобы все этоКод также работает.
Ниже приведен пример того, как вы можете просмотреть свои собственные коды, поскольку это одна из распространенных проблем, с которыми сталкиваются люди при использовании токенов JWT.Я считаю, что до тех пор, пока оба конца одинаковы, будь то «JWT» или «Bearer», он все равно будет работать, но настоятельно рекомендуется использовать в качестве опций только «JWT» или «Bearer»:
A.FRONTEND --- РЕАКЦИЯ --- ГОЛОВКА ДЛЯ АВТОРИЗАЦИИ ОТПРАВИТЕЛЯ
Authorization: "JWT " + auth0Token,
B.BACKEND --- DJANGO REST FRAMEWORK --- HEADORATION HEADORATION HEADER
settings.py
# JWT settings
JWT_AUTH = {
...
'JWT_AUTH_HEADER_PREFIX': "JWT",
...
}
Я также хотел бы поблагодарить @Dan Woda за оказанную помощь.