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 

После выполнения вышеуказанной команды мы сможем получить доступ к приложению в браузере:

Django OAuth через GitHub — страница виджетов (бесплатный шаблон)


✨ 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

Эффект в пользовательском интерфейсе выделен ниже:

Django OAuth через GitHub — опция включена.


✨ Как добавить 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).


Спасибо за чтение! Дополнительные ресурсы и поддержка доступны по адресу:

Datta Able Django — бесплатный стартовый пакет от AppSeed.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *