Когда веб-сайты просят нас войти на свой веб-сайт, чтобы использовать свои услуги, сколько из нас устали от заполнения учетных данных? Ну, я знаю, что я делаю:) В настоящее время большинство веб-приложений объединили социальную аутентификацию в их систему, не просимая избыточных учетных данных от пользователя. И, конечно, социальная аутентификация имеет много важных преимуществ от стороны разработчика.
Социальный логин использует информацию из сайтов социальных сетей, таких как Google или Facebook, чтобы облегчить и облегчить процесс регистрации/входа в систему в сторонних приложениях.
Мы собираемся реализовать аутентификацию Google и GitHub, используя Social-Auth-App-Django библиотека.
- Первое, что сначала давайте установим эту библиотеку, чтобы использовать услугу, которую она обеспечивает.
pip install social-auth-app-django
Установите приложение в settings.py модуль.
settings.py
INSTALLED_APPS = [ # ... 'social_django', ]
Примените миграции, чтобы Django создаст необходимые модели, связанные с Social_django
приложение.
Python Manage.py Makemigrations
Python Manage.py мигрировать
Хорошо, все хорошо. Теперь мы должны добавить проверку подлинности к настройкам, но до этого Что значит добавить бэкэнды аутентификации?
- Ну, до сих пор мы использовали систему аутентификации по умолчанию, которая поставляется с Django. Но чаще всего, чем нет, нам может потребоваться использовать другие источники аутентификации при попытке аутентификации пользователя.
Django отслеживает список брендов аутентификации при аутентификации пользователя. Затем он использует эти брюки в порядке аутентифицировать пользователя. Этот список определен в settings.py под Аутентификация_backends Отказ
Хорошо, давайте определим правильные бэкэнды, которые нам нужны для нашего приложения. Как я уже упоминал в начале, я собираюсь использовать журналы аутентификации Google и GitHub, поэтому позвольте мне идти вперед и добавить их.
AUTHENTICATION_BACKENDS = ( 'social_core.backends.github.GithubOAuth2', 'social_core.backends.google.GoogleOAuth2', 'django.contrib.auth.backends.ModelBackend', )
django.contrib.auth.auth. Modelbackend
Основная бэкэнда аутентификации, которая по умолчанию по умолчанию в Django позволяет пользователям войти в систему по адресу имени пользователя/пароля. Те, которые над ним являются Google и Github Backends для использования в нашем приложении для социальной аутентификации.
Сейчас внутри settings.py Перейти к Шаблоны
Список и добавьте следующее в context_processors
Отказ
settings.py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', # Add the following two 'social_django.context_processors.backends', 'social_django.context_processors.login_redirect', ], }, }, ]
Всякий раз, когда шаблон отображается с запросом, контекст также возвращен. Представьте, что мы строим приложение, где мы должны включить те же данные в каждом представлении, который мы создаем. Это сложно и склонны к ошибке. Вот где приходят контекстные процессоры, чтобы играть.
context_processors
Содержит список путей к Callables, которые вернут словарь, который будет объединен с контекстом каждого представления, спасая нам неприятности, чтобы снова добавить те же данные и снова.Хорошо, давайте перейдем к следующей части, которая обновляет проект URLS.PY Модуль, чтобы включить URL-адреса приложения Social Auth.
user_management/urls.py
# add the following imports from django.urls import path, include from django.conf.urls import url urlpatterns = [ # add this new url entry to include the social auth's urls url(r'^oauth/', include('social_django.urls', namespace='social')), ]
Хорошо, чтобы получить это и запустить следующий шаг – это зарегистрировать наше приложение в Google и GitHub.
Аутентификация GitHub
Шаг 1 – Войдите в свой аккаунт GitHub Шаг 2 – Перейти к настройкам -> Настройки разработчика -> AAuth Apps -> Новое приложение Oauth
Шаг 3 – Заполните информацию
- За исключением URL-адреса обратного вызова авторизации, вы можете заполнить остальную часть информации, как вам нравится.
- Авторизация Callback URL является наиболее важной частью настройки приложения OAUTH. После успешного аутентификации пользователя GitHub возвращает его к этому обратному URL.
- Читать далее… Авторизация приложений ОАУТ
После заполнения информации вам будет предоставлена уникальный идентификатор клиента и секрет клиента. В следующей части мы увидим, как сохранить эти ключи в безопасности с помощью Python-Dotenv, но теперь, поскольку основная тема этой части является социальная аутентификация, давайте сосредоточимся на этом.
settings.py
# social auth configs for github SOCIAL_AUTH_GITHUB_KEY = 'YOUR GITHUB KEY' SOCIAL_AUTH_GITHUB_SECRET = 'YOUR GITHUB SECRET KEY'
Шаблоны
Теперь давайте обновим шаблон входа в систему, чтобы использовать Backend GitHub. Помните в последней части серии, у нас были Войдите с Github и Войдите с Google как мертвые ссылки, так открыты login.html и пойти на якорную тег href
атрибут, который имеет мертвую ссылку на Войдите с Github и обновите его следующим образом.
login.html.
Вот и все, теперь вы можете войти на сайт, используя свой аккаунт GitHub.
Аутентификация Google
Шаг 1 – Перейти к Консоль разработчиков Google Шаг 2 – Перейдите в раздел учетных данных в левом меню и создайте новый проект Шаг 3 – В меню «Создать учетные данные» выберите ID клиента OAUTH Шаг 4 – Выберите веб-приложение в качестве типа приложения и заполните необходимую информацию.
Уполномоченный Redirect URI – это то, где пользователи будут перенаправлены после того, как они будут подтверждены.
Читать далее… Использование OAUTH 2.0 для приложений веб-сервера
- Теперь вам будет предоставлено идентификатор клиента и секрет клиента, который мы будем использовать в settings.py Отказ
settings.py
# social auth configs for google SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'YOUR GOOGLE KEY' SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'YOUR GOOGLE SECRET KEY'
Перейти к login.html и обновить следующее
Отличная работа! После того, как вы получите настройку вашей первой социальной аутентификации, процесс несколько похож на другие социальные сети, такие как Twitter или Facebook. Разница в том, как каждая социальная сеть позволяет нам зарегистрировать наше приложение в их системе.
Это работает как это должно?
- Запустите сервер разработки и запустите обычную команду
Python Manage.py. runserver.
в вашем терминале. - Перейдите в Localhost и попробуйте войти в Github или Google.
Спасибо за ваше время. Вы можете найти готовое приложение в Github Отказ Увидимся в следующий раз с другой частью серии.
Любые комментарии и предложения приветствуются.
Оригинал: “https://dev.to/earthcomfy/django-social-authentication-imk”