Django OAuth для Github — Datta Able (бесплатный продукт)
Привет кодерам!
В этой статье упоминаются последние функции, добавленные в Датта Эйбл, исходный проект с открытым исходным кодом на базе Django. Проект был обновлен, чтобы обеспечить вход OAuth с помощью Github, постоянный темный режим (улучшение пользовательского интерфейса) и более быстрое выполнение в Docker. Для новичков, Джанго — это мощная внутренняя структура, используемая для быстрого написания безопасных и мощных полнофункциональных приложений. Спасибо за чтение!
Добавление входа OAuth в существующее веб-приложение повышает безопасность и может ускорить процесс регистрации.
Последние изменения наглядно представлены в этом коротком видео, опубликованном на Youtube.
ВИДЕО ССЫЛКА — Django Github SignIN — Datta Able (бесплатный продукт)
✨ Как использовать продукт
Будучи стартером с открытым исходным кодом, самый быстрый способ использовать или играть с кодом — это получить доступ к общедоступный репозиторий (доступно на GitHub) или используйте инструмент командной строки GIT для клонирования исходников. После загрузки исходников Django Datta Able можно запустить через Docker (используя одну строку) или используя классическую ручную сборку.
На этот раз будет использоваться установка Docker, представленная в проекте. ПРОЧТИ МЕНЯ.
👉 Шаг 1 — Загрузите код из репозитория GH (используя GIT)
$ git clone
$ cd django-datta-able
👉 Шаг 2 — Запустите приложение в
Docker
$ docker-compose up --build
После выполнения вышеуказанной команды мы сможем получить доступ к приложению в браузере:
✨ OAuth для GitHub
Эта функция автоматически включается на странице входа, если секреты Github (GITHUB_ID
, GITHUB_SECRET
) представлены в .env
файл. Если секреты действительны, на странице входа отображается значок GitHub на карточке входа, чтобы информировать пользователей о том, что этот вариант входа доступен.
# Sample '.env' file (truncated content)
# True for development, False for production
DEBUG=True
...
# If present, the SignIN exposes the Github Login Button
GITHUB_ID= SOME_GH_ID_HERE
GITHUB_SECRET= SOME_GH_SECRET_HERE
Эффект в пользовательском интерфейсе выделен ниже:
✨ Как добавить OAuth в проект Django
Если кто-то посчитает эту функцию полезной и захочет обновить существующее приложение, выполните следующие действия:
👉 Шаг 1. Обновите зависимости для включения
Django-AllAuth
$ pip install django-allauth
Для сохранения модуль также должен быть включен в requirements.txt
файл.
👉 Шаг № 2 — Обновление проекта настройки включить модули allauth
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.github',
'allauth.socialaccount.providers.twitter'
]
👉 Шаг № 3 — Добавлены связанные настройки (нижняя часть файла)
AUTHENTICATION_BACKENDS = (
"allauth.account.auth_backends.AuthenticationBackend",
)
SITE_ID = 1
Все эти настройки необходимы для AllAuth library
.
👉 Шаг № 4. Включите маршрутизацию, предоставленную
AppAuth
Для Django Datta Able это обновление было сделано в аутентификация/urls.py :
urlpatterns = [
path('login/', login_view, name="login"),
path('register/', register_user, name="register"),
path("logout/", LogoutView.as_view(), name="logout"),
path('social_login/', include('allauth.urls')),
]
👉 Шаг № 5. Обновите настройки приложения, чтобы читать секреты Github из
.env
GITHUB_ID = os.getenv('GITHUB_ID', None)
GITHUB_SECRET = os.getenv('GITHUB_SECRET', None)
GITHUB_AUTH = GITHUB_SECRET is not None and GITHUB_ID is not None
👉 Шаг 6. Обновите страница входа
{% if GITHUB_AUTH %}
<div class="mx-2">
<form method="post" action="/social_login/github/login/?next=%2F">
{% csrf_token %}
<button class="btn btn-light" type="submit" >
<i class="feather icon-github auth-icon"></i></button>
</form>
<span class="mx-1">Sign IN with GitHub</span>
</div>
{% endif %}
На этом этапе последним шагом является миграция базы данных для проверки потока OAuth (registration
, logout
).
Спасибо за чтение! Дополнительные ресурсы и поддержка доступны по адресу: