Autenticación de GitHub en Django usando django-allauth

Autenticación de GitHub en Django usando django-allauth

Hola programador de internet. Agreguemos la autenticación de GitHub en la aplicación Django usando el paquete Django-allauth. Incluso utilicé la autenticación de GitHub en mi proyecto awwsome.dev. Así que saltemos al código.

Aquí continuamos con el último tutorial y agregamos Autenticación local y Autenticación de Google, y Autenticación de Facebook, pero no se preocupe, aún puede seguir esto directamente para su proyecto.

Índice
  1. Instalaciones
  2. Configurar django allauth
  3. GitHub OAuth
  4. Agregar aplicación social en el administrador de Django

Instalaciones

pip install django-allauth

Configurar django allauth

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",

    'django.contrib.sites', # must
    'allauth', # must
    'allauth.account', # must
    'allauth.socialaccount', # must
    'allauth.socialaccount.providers.google', # google provider
    'allauth.socialaccount.providers.facebook', # facebook provider
    'allauth.socialaccount.providers.github', # new (github provider)
 ]

Puede ver que incluimos proveedores de GitHub para la autenticación. En el tutorial anterior, agregamos un proveedor de Google y Facebook.

Luego en la parte inferior deconfiguración.pydebemos especificar que estamos usando eltodos los permisosback-end, agregue unIDENTIFICACIÓN DEL SITIOya quetodos los permisoslo usa y configura una redirección a la página de inicio después de iniciar sesión correctamente.

SITE_ID = 1

AUTHENTICATION_BACKENDS = [
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend',

    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
]

ACCOUNT_EMAIL_VERIFICATION = 'none'

LOGIN_REDIRECT_URL = '/'

Abiertourls.pydel proyecto principal y agregue esto,

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('allauth.urls')),
]

GitHub OAuth

Ahora abra https://github.com/settings/applications/new para configurar la aplicación OAuth en GitHub. Obtendrá una identificación de cliente y una clave secreta.

Complete los detalles y para

  • URL de la página de inicio: http://localhost:8000/
  • URL de devolución de llamada de autorización: http://localhost:8000/accounts/github/login/callback/

Luego haga clic en Registrar Solicitud

Registro de una nueva aplicación OAuth en GitHub, autenticación de GitHub en la aplicación Django con django-allauth
Registrar una nueva aplicación OAuth en GitHub

Verá que uso http://localhost:8000 no http://127.0.0.1:8000 porque la autenticación de Facebook solo funciona con localhost, por eso. Puede usar http://127.0.0.1:8000 si solo usa GitHub. Pero si está utilizando un dominio, este problema no ocurrirá.

Ok, después en la página siguiente verá la identificación del cliente y para el clave secreta del cliente (Clave secreta) debe hacer clic Generar un nuevo secreto de cliente botón.

github oauth client secret y página de inicio de sesión del cliente, autenticación django-allauth github

Ahora tu tienes identidad del cliente y Secreto del cliente

Agregar aplicación social en el administrador de Django

Primero, ejecute el comando de migración para migrar todos los elementos de django-allauth

python manage.py migrate

suponiendo que ya haya creado un superusuario; de lo contrario, cree usando,

python manage.py createsuperuser

Ahora ejecuta el servidor usandoManage.py servidor de tiempo de ejecución de pythony abre administrador. Vaya a esta página http://localhost:8000/admin/sites/site/1/change/ y realice estos cambios, si actualmente está en producción, puede usar la IP de su página o el nombre de dominio

configuración del sitio en django admin para autenticación github django-allauth
configuración del sitio

Estás totalmente de acuerdo con http://127.0.0.1:8000 de acuerdo

Luego haga clic en aplicaciones sociales haga clic en agregar y complete los detalles de la siguiente manera, luego guárdelo.

  1. Proveedor: GitHub
  2. Apellido: [Whatever your want]
  3. Identidad del cliente: [YOUR GITHUB OAUTH APP CLIENT ID]
  4. Llave secreta: [YOUR GITHUB OAUTH APP CLIENT SECRET]
  5. Sitios: localhost:8000 o 127.0.0.1:8000 o su dominio
Agregue GitHub en aplicaciones sociales en el administrador de Django.  Inicio de sesión de Github en Django
Agregue GitHub en aplicaciones sociales en el administrador de Django

Ahora cierre sesión cuando inició sesión como superusuario y abra http://localhost:8000/accounts/login/ y podrá ver GitHub opciones de conexión

Opción de inicio de sesión de GitHub en la página de inicio de sesión, github oauth en django
Opción de inicio de sesión de GitHub en la página de inicio de sesión

Si tiene plantillas personalizadas de django-allauth, puede usar directamente este código en su plantilla.

{% load socialaccount %}

<h1>Django Allauth Tutorial</h1>

<a href="{% provider_login_url 'github' %}">Sign Up with GitHub</a>

Muy bien, eso es todo. Codificación feliz 🙂

  • Documento oficial: autenticación de GitHub
  • Tutorial anterior: Autenticación de Facebook en Django usando django-allauth
  • Tutorial de Django-allauth: https://www.codesnail.com/django-allauth-tutorial/

Si quieres conocer otros artículos parecidos a Autenticación de GitHub en Django usando django-allauth puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas