Рубрики
Без рубрики

Аутентификация социальных приложений Django

Когда веб-сайты просят нас войти на свой веб-сайт, чтобы использовать свои услуги, сколько из нас устало от … Tagged с Python, Django, WebDev, CodeNewbie.

Когда веб-сайты просят нас войти на свой веб-сайт, чтобы использовать свои услуги, сколько из нас устали от заполнения учетных данных? Ну, я знаю, что я делаю:) В настоящее время большинство веб-приложений объединили социальную аутентификацию в их систему, не просимая избыточных учетных данных от пользователя. И, конечно, социальная аутентификация имеет много важных преимуществ от стороны разработчика.

Социальный логин использует информацию из сайтов социальных сетей, таких как 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 – Выберите веб-приложение в качестве типа приложения и заполните необходимую информацию.

  • Теперь вам будет предоставлено идентификатор клиента и секрет клиента, который мы будем использовать в 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”