Как создать 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, и напрямую позволяет нам войти в платформу? Или если есть какое-либо другое пользовательское решение для этого?

Вернуться на верх