Как я могу аутентифицировать пользователя в приложении FastAPI, используя аутентификацию пользователей Django?

У меня есть база пользователей в приложении Django, и я создал отдельное приложение FastAPI, которое будет жить на другом сервере. Я хотел бы, чтобы пользователи аутентифицировались в приложении FastAPI с помощью своих учетных данных Django.

Я следовал документации по безопасности FastAPI, чтобы хотя бы подготовить основу для OAuth2. В этой документации явно даются советы, что эта настройка позволяет читать и проверять пароли, созданные Django (первый совет в этой ссылке). Однако мне не удается найти другие ресурсы о том, как настроить это в полном цикле

Нужно ли мне настроить мое приложение Django на использование OAuth2 или достаточно аутентификации по умолчанию?

Я предполагаю, что приложение FastAPI должно послать запрос приложению Django ИЛИ иметь доступ к базе данных Django, чтобы сделать проверку. Но я не совсем уверен в правильных (безопасных) шагах для реализации.

Любые ресурсы или руководство о том, как это реализовать, будут высоко оценены.

Кажется, я нашел частичный ответ на свой вопрос, который заключается в том, чтобы пользователь просто ввел свое имя пользователя/пароль в форму. Затем я сделаю вызов к бэкенду django с именем пользователя, возвращая его хэшированный пароль. Используйте passlib для сравнения:

from passlib.apps import django_context
hash='pbkdf2_sha256$20000$3RFHVUvhZbu5$llCkkBhVqeh69KSETtH8gK5iTQVy2guwSSyTeGyguxE='
user_input = 'password'
django_context.verify(user_input, hash) #prints true/false based on result

Если истина, продолжить обработку данных.

Я не уверен, является ли это безопасным средством для обработки аутентификации пользователя и работы с паролями.

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