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 поддерживает его...

В конце концов, это БОЛЬШОЕ решение для быстрой аутентификации.