AWS Cognito в качестве аутентификации Django для веб-сайта
Мое чтение Cognito заключается в том, что его можно использовать вместо локальной базы данных admin Django для аутентификации пользователей веб-сайта. Однако я не нахожу суп-орешек примеров базового приложения "Hello, World" с экраном входа, который проходит через Cognito. Я был бы очень признателен, если бы кто-то мог опубликовать статью, которая показывает шаг за шагом, как создать приложение Hello World Django и пул пользователей Cognito, а затем, как заменить стандартную аутентификацию в Django вызовом AWS Cognito.
В частности, мне нужно знать, как собирать информацию с сайта администрирования Cognito, который необходим для настройки вызова Cognito API для аутентификации пользователя.
Есть два случая, чтобы рассмотреть: вход пользователя приложения в приложение и вход администратора в django URL-адрес администратора сайта. Я предполагаю, что я хотел бы использовать Cognito для обоих случаев, иначе я оставляю потенциальную дыру, где URL-адрес администратора использует более слабую технологию входа.
Текущие ответы на форумах AWS и StackExchange говорят:
(1) Тратить время на использование Cognito для аутентификации веб-сайта, это только для доступа к ресурсам AWS
(2) Это не пустая трата времени. Я собираюсь сдаться. Я дошел до создания образца пользовательского пула и групп пользователей Cognito и очистки веб-страниц для правильных примеров этого варианта использования. (Ничего не найдено, или я бы не писал).
(3) https://github.com/capless/warrant, https://github.com/metametricsinc/django-warrant - это два возможных решения на форумах aws.
Ответы
Ответ 1
Если вы читаете это, вы, вероятно, googled "aws cognito django" xD.
Я просто хочу поделиться тем, что я сделал, чтобы заставить эту работу работать:
- Джанго-варрант. Отличный пакет обертки для обоев.
- Не забудьте понять текущую структуру модели пользователя. Если вы используете пользовательскую модель пользователя, не забудьте ее сопоставить с
COGNITO_ATTR_MAPPING
параметра COGNITO_ATTR_MAPPING
. -
Измените свою аутентификацию, чтобы поддерживать стороннее подключение. Когда вы получаете от клиента некоторый токен Cognito, преобразуйте его в свой собственный токен, используя oAuth/JWT/Session.
-
Переосмыслите свой процесс регистрации/регистрации. Вам нужна другая регистрация? Пакет django-warrant поддерживает его...
В конце концов, это БОЛЬШОЕ решение для быстрой аутентификации.