Поиск подходящего пакета социальной аутентификации для вашего проекта Django.
Пакетный ад 🔥
К сожалению, доступно огромное количество пакетов, пытающихся решить задачу (социальной) аутентификации в проекте Django. Я сравниваю четыре популярных пакета на основе функциональности, истории разработки, популярности и документации. Они были предварительно отобраны на основе популярности и активного статуса разработки.
Обзор пакета
Джанго-Аллаут
Django-allauth — один из самых популярных пакетов аутентификации в мире Django, предлагающий широкий функционал для классической и социальной аутентификации. Он разрабатывается и активно поддерживается уже более 10 лет, используется почти в 100 000 проектах и имеет большую базу участников. Его документация обширна, проста и проста для понимания, так же как и довольно проста в реализации. Пакет поставляется, однако, с одним большим недостатком. Он не предоставляет готовых функций для использования с django-rest-framework, ограничивая его использование с языком шаблонов Django. Таким образом, исключаются все проекты, которые запускаются без головы с одностраничным приложением или мобильным приложением в качестве внешних интерфейсов. В целом, это хорошо разработанный пакет для (социальной) аутентификации с Django, но ему не хватает функциональности REST API, что является большим недостатком.
dj-rest-auth
DJ-rest-auth строится поверх django-allauth и закрывает пробел в использовании аутентификации с django-rest-framework, эффективно разрешая (социальную) аутентификацию также для безголовых приложений Django с помощью REST. Конечные точки API. Он разрабатывается уже несколько лет и до сих пор активно поддерживается. С почти 1000 звездами и более чем 100 участниками, это также очень популярный пакет. Его документация прямолинейна, проста для понимания и охватывает все необходимое. В целом, это отличный пакет для реализации (социальной) аутентификации с помощью Django и django-rest-framework.
питон-социальная авторизация
Этот пакет предлагает социальную аутентификацию и авторизацию для проектов Python, поддерживая, среди прочего, протоколы OAuth1, OAuth2 и OpenID. Он разрабатывался несколько лет и до сих пор активно поддерживается. Кодовая база изначально была получена из django-social-auth с целью предоставления более общего пакета, а также поддержки других фреймворков Python, таких как Flask. Пакет разделен на несколько модулей, тогда как только основной модуль имеет более 18000 пользователей и сотни участников. Документация обширна, проста и довольно проста для понимания. В целом, это можно считать беспроигрышным вариантом для реализации решения (социальной) аутентификации в проекте Python (не только Django).
drf-социальный-oauth2
Drf-social-oauth2 — это оболочка над python-social-auth и django-oauth-toolkit, объединяющая их функциональность в одном пакете. Эффективно предоставляя вам простой доступ к настройке социальной аутентификации с помощью конечной точки REST API, а также к настройке поставщика OAuth. Его преимущество перед python-social-auth вступает в игру, когда вы также хотите самостоятельно настроить провайдера OAuth, чтобы дать вашим пользователям возможность аутентифицироваться через общего социального провайдера. Похоже, что он является преемником django-rest-framework-social-oauth2 и активно поддерживается. На первый взгляд кажется, что он не так популярен, как другие пакеты. Это может быть связано с тем, что в 2019 году он заменил django-rest-framework-social-oath2. Документация не слишком обширна, но проста и охватывает все базовые случаи. Кроме того, поскольку это оболочка для двух других пакетов, вы можете глубже изучить их документацию. В целом, это хороший пакет, если вы заинтересованы в реализации (социальной) аутентификации через конечную точку REST API, а также хотите самостоятельно настроить поставщика OAuth.
Краткое содержание
Когда дело доходит до популярности, статуса разработки и документации, все четыре пакета выглядят очень хорошо. Различия, в основном, заключаются в разном наборе функций. Какой пакет подходит для вашего проекта, во многом зависит от ваших конкретных требований.
Если у вас есть проект Django, использующий встроенный язык шаблонов, и вы хотите использовать хорошо разработанный и тщательно протестированный пакет, django-allauth, вероятно, будет для вас правильным выбором. Если вам также необходимо реализовать аутентификацию через конечные точки REST API, то dj-rest-auth или python-social-auth — отличный выбор. Принимая во внимание, что dj-rest-auth опирается на django-allauth, python-social-auth функционирует как отдельный пакет и может также использоваться с другими фреймворками, кроме Django. Если вы дополнительно хотите настроить своего собственного провайдера OAuth, вам может подойти drf-social-oauth2, объединяющий python-social-auth и django-oauth-toolkit.