Как формировать запрос к Django REST Api?

Как правильно формировать запрос к django с использованием JWT? Допустим, что предварительно я сделал запрос на /api/v1/auth/login username="admin" password="123" и в ответ получил JWT и сохранил его в LocalStorage. При следующем запросе, например на адрес /api/v1/users/ я должен сформировать GET запрос с заголовком, каким? И с каким содержимым? Backend каким образом должен быть настроен:?

На сегоднящний момент у меня есть Django с Apps django:
  • 'rest_framework',
  • 'rest_framework.authtoken',


И Settings:
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}

JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=14)
}
  • Вопрос задан
  • 914 просмотров
Решения вопроса 1
planc
@planc
www.django-rest-framework.org/api-guide/authentication
getblimp.github.io/django-rest-framework-jwt

curl -H "Authorization: JWT < your_token >" localhost:8000/protected-url

если домен фронтенда != домен бэкенда, то браузер делает запрос OPTIONS на бэкэнд перед основным запросом и спрашивает - эй я пришел с этого домена, можно я тебе отправлю запрос вот таким методом
и если сервер не ответил, то браузер говорит юзеру - облом

www.django-rest-framework.org/topics/ajax-csrf-cor...

можно или джангой добавлять хэдер( https://github.com/ottoyiu/django-cors-headers/ ) или nginx :

add_header 'Access-Control-Allow-Origin' 'https://адрес фронтенда или *';
	add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS, PUT, DELETE';
	add_header 'Access-Control-Allow-Headers' 'Content-Type, Accept, Authorization';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы