Cet article est un guide simple sur la façon d'implémenter GitHub OAuth pour une authentification sécurisée des utilisateurs.
Dans ce guide nous pourrons
Pour tirer le meilleur parti de cet article, les utilisateurs doivent avoir une bonne compréhension de
Nous allons mettre en œuvre cela en 3 étapes simples
Créez vos informations d'identification GitHub OAuth en accédant aux paramètres de votre compte GitHub, faites défiler jusqu'à l'endroit où vous voyez les paramètres du développeur, cliquez sur Applications OAuth comme indiqué ci-dessous.
Si vous avez une application existante, vous pouvez la modifier, sinon vous pouvez en créer une nouvelle en cliquant sur Nouvelle application OAuth et en créer une nouvelle, donner un nom clair et descriptif à l'application, l'ajouter à l'URL de votre page d'accueil http:/ /localhost:8000/ vous souhaiterez peut-être remplacer localhost: par 127.0.0.1 : si c'est ainsi que vous avez configuré votre application Django pour qu'elle s'exécute, la configuration que vous avez configurée sur GitHub doit correspondre à celle que vous avez configurée. avez sur votre application pour éviter que des erreurs de serveur ne soient générées, ajoutez à l'URL de rappel d'autorisation cette URL de rappel http://localhost:8000/api/auth/github/login/callback/ votre configuration doit refléter ce que vous voyez dans l'image ci-dessous.
Copiez et enregistrez votre ID client et vos secrets client comme indiqué ci-dessous pour une utilisation ultérieure sur votre projet Django
Exécutez les requêtes pip install django-allauth dj-rest-auth dans d'autres pour installer ces packages. Dans le fichier settings.py de votre application, ajoutez le bloc de code suivant à votre
SOCIALACCOUNT_PROVIDERS = { 'github': { 'APP': { 'client_id': '<github_client_id>', 'secret': '<github_secret_keys>', 'key': '' } } } SITE_ID = 1
Si vous souhaitez capturer l'e-mail d'un utilisateur authentifié dans l'administrateur, vous pouvez inclure cette ligne de code dans le fichier settings.py de votre projet
ACCOUNT_EMAIL_REQUIRED = True
Nous continuons à modifier notre fichier settings.py en ajoutant le bloc de code suivant
'rest_framework', 'rest_framework.authtoken', 'dj_rest_auth', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.github'
dans le middlesware de votre fichier settings.py, incluez cette ligne de code
'allauth.account.middleware.AccountMiddleware',
Enfin nous modifions le fichier urls.py du projet en ajoutant le bloc de code suivant
from allauth.socialaccount.providers.github import views as github_views path('api/auth/github/login/', github_views.oauth2_login, name='github_login'), path('api/auth/github/login/callback/', github_views.oauth2_callback, name='github_callback'),
NB : La modification doit se faire dans le fichier urls.py du projet et non dans le fichier urls.py de l'application
Tout est fait ? visitez le point de terminaison http://localhost:8000/api/auth/github/login/ vous devriez être redirigé vers une page comme celle-ci et lorsque vous cliquez sur le bouton Continuer, vous devriez être redirigé vers la page d'autorisation de GitHub
Vous remarquez qu'après une authentification réussie, vous êtes redirigé vers http://localhost:8000/accounts/profile/ qui affiche une page d'erreur 404.
Pour résoudre ce problème, nous pouvons créer un point de terminaison /accounts/profile dans le fichier urls.py de vos applications, puis créer une vue relative pour ce point de terminaison. Si votre point de terminaison et vos vues sont correctement configurés, vous devriez maintenant voir ceci au lieu de la page d'erreur 404
dj-auth-rest et social-auth-app-django sont toutes deux des bibliothèques utilisées pour faciliter l'authentification dans les projets Django, mais elles répondent à des besoins différents et fonctionnent différemment
dj-auth-rest est utilisé pour un projet basé sur une API tandis que social-auth-app-django est utilisé pour un projet basé sur le Web et les deux peuvent être utilisés sur le même projet
L'intégration de GitHub OAuth dans votre application Django offre aux individus un moyen sécurisé et convivial de se connecter à l'aide de leurs informations d'identification GitHub.
À l'aide de ce guide, vous pouvez améliorer la sécurité de votre application, rationaliser le processus de connexion et améliorer l'expérience utilisateur globale tout en accédant aux données utilisateur pertinentes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!