Я настроил Django REST API для SessionAuthentication, TokenAuthentication и OAuth2Authentication для веб-приложений AJAX (и собственных клиентов в будущем).Django REST Framework SessionAuthentication, похоже, не работает?
Проверка подлинности Token en OAuth2 прекрасна, но поведение SessionAuthentication еще не работает, как хотелось бы.
У меня есть два REST API, с идентичной конфигурацией на данный момент:
http://api.sandbox.dev:8080/ и http://www.sandbox.dev:8080/api/
Мой веб-приложение AJAX находится на http://www.sandbox.dev:8080.
Код:
- Джанго настройки: https://github.com/kristofvbk/sandbox-django/blob/master/sandbox/settings.py
- JavaScript REST клиент: https://github.com/kristofvbk/sandbox-django/blob/master/sandbox/www/static/js/jquery.rest.js
- AJAX веб-приложение: https://github.com/kristofvbk/sandbox-django/blob/master/sandbox/www/templates/ajax/session.html
Everytime когда я делаю вызов AJAX к API на api.sandbox.dev от www.sandbox.dev Я получаю ошибку «403 Forbidden». Я думаю, что я сделал все правильно, чтобы заставить вещи работать в кросс-домене или я что-то упускаю?
Заранее благодарим за помощь или советы!
С наилучшими пожеланиями, Кристофа
Спасибо mariodev. У меня почти все работает сейчас, но с этими дополнительными настройками я могу только GET (читать) данные из api.sandbox.dev на www.sandbox.dev через AJAX. Когда я пытаюсь выполнить POST, PUT или DELETE, я всегда получаю «403 FORBIDDEN» с сообщением в ответе «{« detail »:« CSRF Failed: токен CSRF отсутствует или неверный. »}. Я также добавил страницы с аутентификацией OAuth2 и токена для того же API на api.sandbox.dev и с тем же токеном CSRF в клиенте AJAX REST, но проблем там нет. – Braek
Я также обновил наиболее важные файлы, перечисленные выше в GitHub. – Braek
См. Обновленный пост, эти два доменных имени являются единственными изменениями, которые я сделал для вашего последнего репо и работы POST. – mariodev