Рекомендации по нескольким проектам с совместным использованием аутентификации (DRF) - PullRequest
1 голос
/ 27 марта 2020

Я ищу несколько советов по настройке одной службы аутентификации для нескольких различных django проектов.

В настоящее время у меня есть один проект, который использует AWS Cognito для аутентификации (с django - Cognito-JWT). Затем у меня есть отдельный проект, который делает то же самое, используя другой AWS пользовательский пул Cognito. Эти проекты никак не связаны. Текущий поток для каждого приложения выглядит следующим образом:

(1) Go для одного проекта и вход в систему через веб-интерфейс

(2) Использование AWS Amplify для аутентификации пользователя по cognito и возврата a JWT

(3) Нажмите мой DRF API и вызовите get_or_create_for_cognito для анализа JWT

(4) Если учетная запись новая, создайте Django объект пользователя в базе данных, хранящий идентификатор из cognito

(4) Если учетная запись уже существует, найдите запись пользователя по идентификатору cognito и верните, что

(5) С помощью этого возвращенного пользовательского объекта я могу искать группы и разрешения, связанные с пользователем, разрешать или запрещать различные конечные точки.

Моя цель - сделать так, чтобы одна учетная запись Cognito позволяла пользователю проходить аутентификацию в обоих проектах.

Я понимаю, что могу просто указать оба проекта одному и тому же "пользователю" Таблица, но несколько разных сайтов / блогов говорили о том, что это плохая практика. Некоторые люди упоминали о введении третьего django проекта, единственной ответственностью которого является Аутентификация. Тем не менее, большинство примеров, которые я нашел, используют встроенную аутентификацию django, а не cognito.

Так что на высоком уровне я задаюсь вопросом, есть ли у кого-нибудь какие-либо идеи относительно того, как это сконструировать, или какие-либо Пример проекта с использованием Cognito, который может быть полезен для чтения.

Спасибо за любую помощь !!

Я также прочитал этот аналогичный пост: Несколько Django приложений, общая аутентификация , но мои требования отличаются, потому что я использую JWT auth и cognito

1 Ответ

1 голос
/ 28 марта 2020

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

...