Как создать API входа сторонних пользователей в Django для сохранения данных сессии?
Я пытаюсь создать внешний API в django, чтобы любое стороннее приложение могло войти в мое Django-приложение со своим именем пользователя и паролем, и далее использовать все аутентифицированные вызовы в Django-приложении.
Насколько я понимаю, в Django есть вызов GET, который создает csrf_token
, и токен op_browser_state
, который сохраняется в Cookies. После того, как пользователь вводит имя пользователя и пароль, и выбирает вход. Внутри, идентификатор сессии добавляется через промежуточное программное обеспечение между запросом и ответом, после того как auth.login
успешно завершен, с именем пользователя и паролем. Session_id, а также csrf_token и op_browser_state сохраняются в cookies и используются для всех дальнейших вызовов Django API, которые могут использовать SessionAuthentication
.
Итак, если я смогу сохранить куки для session__id, csrf_token и op_browser_state для имени хоста приложения Django. Я должен быть в состоянии решить эту проблему. Я попробовал создать внешний API, который выполняет вход для заданной комбинации имени пользователя и пароля и возвращает значения csrf_token и session_id, сгенерированные API. Однако это не сработало, поскольку похоже, что cookies хранятся не для приложения Django, а для стороннего приложения. Таким образом, я не могу пропустить страницу входа в Django-приложение, чтобы попасть на любую другую страницу.
Есть ли способ написать API, который напрямую регистрирует Django-приложение, использующее BasicAuthentication и SessionAuthentication, и сохраняет соответствующие session_id и csrf_token в cookies, и напрямую позволяет нам войти в платформу? Или если есть какое-либо другое пользовательское решение для этого?