Authentification des utilisateurs sociaux dans Django Framework
Découvrez comment effectuer l'authentification des utilisateurs sociaux dans l'application Web Django à l'aide de services tiers comme Google.
Introduction
Django est un framework Web gratuit et open source en Python. Il suit le modèle architectural modèle-vue-contrôleur et fournit, entre autres fonctionnalités, une interface d'administration intégrée, un mappage objet-relationnel (ORM) et un moteur de modèles. L'objectif principal de Django est de permettre aux développeurs de créer et de maintenir plus facilement des applications Web en fournissant un ensemble de composants réutilisables de haut niveau pour les tâches quotidiennes telles que la gestion de l'authentification des utilisateurs, la création et la gestion de bases de données et la gestion des requêtes et des réponses HTTP.
Cet article expliquera comment effectuer une authentification sociale dans une application Django à l'aide de Google. L'authentification sociale, également connue sous le nom de connexion sociale ou de connexion, est une méthode permettant d'authentifier les utilisateurs à l'aide de leurs comptes de réseaux sociaux existants, tels que Facebook, Google ou Twitter, au lieu de créer un nouveau compte spécifiquement pour le site Web ou l'application.
Les avantages de l'utilisation de l'authentification sociale par rapport à un système d'authentification traditionnel sont qu'elle élimine le besoin pour les utilisateurs de créer et de mémoriser un autre nom d'utilisateur et un autre mot de passe, réduisant ainsi les frictions et augmentant la probabilité que les utilisateurs s'inscrivent au site Web ou à l'application. En outre, il améliore l'expérience utilisateur en permettant aux utilisateurs de se connecter avec leurs comptes de réseaux sociaux existants. L'authentification sociale offre une expérience utilisateur plus transparente et familière.
Obtenir l'ID client et la clé secrète client à partir de la console Google
Connectez-vous à la plate-forme Google Console. Vous pouvez utiliser ce lien pour vous connecter.
-
Créez un nouveau projet si vous n’en avez pas déjà un.
Après avoir créé le projet, nous devons configurer l'écran OAuth. Cet écran s'affiche lorsqu'un client tente d'authentifier votre site Web à l'aide de Google Auth. Il contient le résumé de votre application et toutes les politiques requises.
Cliquez sur le bouton comme indiqué ci-dessous.
Sélectionnez le type d'utilisateur comme externe et cliquez sur le bouton Créer.
Remplissez tous les détails requis et continuez.
Laissez la section Domaine autorisé vide, car nous testons actuellement notre application sur le serveur local. Si vous hébergez votre site Web avec un nom de domaine approprié, vous devez saisir ici le nom de domaine de votre site Web.
-
Laissez les autres étapes, comme Scops et Test Users, vides.
Après avoir configuré l'écran OAuth, accédez à
Identifiants << CREATE CREDENTIALS << ID client OAuth
Sélectionnez le type d'application comme Application Web.
Remplissez toutes les informations requises et cliquez sur le bouton Créer.
Remarque : Ajoutez des URL de redirection autorisées, car nous exécutons actuellement notre application sur l'hôte local. Vous pouvez modifier les URL de redirection en fonction de votre nom de domaine.
http://127.0.0.1:8000/accounts/google/login/callback/
http://localhost:8000/accounts/google/login/callback/
Maintenant, vous obtiendrez votre ID client et votre secret client que nous utiliserons dans notre application Django.
Remarque : Veuillez ne partager ces informations d'identification avec personne.
Vous trouverez vos informations d'identification créées dans la Section Identifiants.
Création de l'application Django
Dans cette section, nous verrons comment créer une application Django et comment utiliser l'authentification sociale des utilisateurs. Si vous êtes nouveau sur Django, c'est également très bien. Je vais vous expliquer chaque étape en détail.
Remarque : Nous utiliserons une machine Windows dans ce didacticiel.
Créer un environnement virtuel
$ py -m venv // Command to create venv
$ \Scripts\activate // Command to activate venv
Remarque : Il est toujours recommandé de créer un environnement virtuel. Cela vous aidera à bien gérer vos bibliothèques/dépendances.
Installation des bibliothèques requises :
$ pip install django
$ pip install django-allauth
Qu’est-ce que Django-allauth ?
Django-allauth est une bibliothèque pour le framework Web Django qui fournit un ensemble de vues et de formulaires d'authentification tout-en-un, un processus d'enregistrement et d'authentification des utilisateurs unifiés parmi divers fournisseurs de comptes (sociaux) tiers comme Google, Facebook, etc. Il permet aux développeurs d'ajouter rapidement et facilement des fonctionnalités d'authentification et d'enregistrement à leurs projets Django. Il prend également en charge OAuth et OpenID Connect.
Créer un projet Django
$ django-admin startproject //socialauthapp
Se déplacer dans le répertoire du projet
$ cd //socialauthapp
Ajoutez les applications dans la liste INSTALLED_APPS dans le fichier
settings.py
.
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.google",
]
Dans le même fichier
settings.py
, ajoutez les backends d'authentification suivants.
AUTHENTICATION_BACKENDS = (
"django.contrib.auth.backends.ModelBackend",
"allauth.account.auth_backends.AuthenticationBackend",
)
Nous devons maintenant ajouter les URL allauth dans le fichier
urls.py
dans le répertoire principal du projet. Après avoir ajouté les URL, votre fichierurls.py
ressemble à ceci.
from django.contrib import admin
from django.urls import path
from django.urls import include, re_path
urlpatterns = [
path("admin/", admin.site.urls),
re_path("accounts/", include("allauth.urls")),
]
Effectuez toutes les migrations nécessaires.
$ python manage.py makemigrations
$ python manage.py migrate
Maintenant, nous allons créer un superutilisateur (il s'agit d'un utilisateur administrateur ayant toutes sortes d'accès/autorisations)
$ python manage.py createsuperuser
Enfin, nous exécuterons notre serveur.
$ python manage.py runserver
En cliquant sur cette URL (http://localhost:8000/accounts/login/), vous pourrez voir le formulaire de connexion.
Notre application Django est maintenant créée. Si vous rencontrez une erreur lors de l'exécution du serveur, veuillez vérifier à nouveau toutes les étapes. Si vous pouvez voir la page de connexion ci-dessus, votre application fonctionne parfaitement ??.
Ajout d'un ID client et d'un secret client dans l'application Django
Dans cette section, nous ajouterons l'ID client et le Secret client dans notre application que nous avons créée dans la console Google.
Ouvrez le panneau d'administration Django. (http://localhost:8000/admin/login/?next=/admin/)
Entrez le nom d'utilisateur et le mot de passe que vous avez définis lors de la création du superutilisateur.
Cliquez sur Applications sociales puis cliquez sur Ajouter une application sociale.
Sélectionnez le fournisseur comme Google et entrez votre ID client et votre secret client. Et puis enfin, cliquez sur le bouton Enregistrer.
Déconnectez-vous maintenant du panneau d’administration et vous avez terminé.
Étapes de connexion
Accédez à cette URL (http://localhost:8000/accounts/google/login/?process=login) pour vous connecter via votre application à l'aide de Google.
Remarque : Après la connexion, vous serez automatiquement redirigé vers la page de profil (c'est-à-dire http://localhost:8000/accounts/profile/).
Modification des URL de redirection
Vous pouvez modifier les URL de redirection par défaut en spécifiant votre URL de redirection particulière dans le fichier settings.py
.
Par exemple,
LOGIN_REDIRECT_URL = "/" # This will redirect to your homepage
LOGOUT_REDIRECT_URL = "/"
Déconnexion
Vous pouvez vous déconnecter de l'application en cliquant sur cette URL (http://localhost:8000/accounts/logout/).
Conclusion
Dans cet article, nous avons adopté une approche étape par étape pour montrer comment intégrer l'authentification Google dans une application Web Django. Pour commencer, nous avons créé un service sur la console Google et obtenu l'ID client et le secret client nécessaires. Ensuite, après avoir créé l'application, nous avons saisi les clés secrètes dans le portail d'administration et nous sommes connectés avec succès à l'application à l'aide de l'authentification Google.
Il convient de noter que nous pouvons appliquer le même processus pour authentifier les utilisateurs en utilisant Facebook ou Github. En créant les clés secrètes à partir des portails d'administration respectifs et en les saisissant dans le portail d'administration de l'application Django, vous pouvez également activer l'authentification via ces fournisseurs.
En conclusion, j’espère que vous avez apprécié cet article et que vous l’avez trouvé instructif. Si vous avez des suggestions ou des commentaires, veuillez me contacter via LinkedIn.
Passe une bonne journée????.