Utiliser dj-rest-auth pour intégrer l'authentification GitHub dans votre projet Django

Susan Sarandon
Libérer: 2024-11-22 02:27:11
original
428 Les gens l'ont consulté

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

  • créez ou connectez un utilisateur en toute transparence à l'aide de ses informations d'identification GitHub
  • enregistrer les informations d'identification des utilisateurs pour une utilisation ultérieure

Condition préalable

Pour tirer le meilleur parti de cet article, les utilisateurs doivent avoir une bonne compréhension de

  • GitHub
  • Django
  • Cadre de repos Django

Nous allons mettre en œuvre cela en 3 étapes simples

  • 1. configurer GitHub
  • 2. configurer Django
  • 3. tester le point de terminaison d'authentification

1. Configurer GitHub

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.
Using dj-rest-auth to integrate GitHub authentication in your Django projectSi 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.
Using dj-rest-auth to integrate GitHub authentication in your Django projectCopiez et enregistrez votre ID client et vos secrets client comme indiqué ci-dessous pour une utilisation ultérieure sur votre projet Django Using dj-rest-auth to integrate GitHub authentication in your Django project

2. Configurer 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
Copier après la connexion

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
Copier après la connexion

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'
Copier après la connexion


dans le middlesware de votre fichier settings.py, incluez cette ligne de code

'allauth.account.middleware.AccountMiddleware',
Copier après la connexion

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'),
Copier après la connexion

NB : La modification doit se faire dans le fichier urls.py du projet et non dans le fichier urls.py de l'application

3. Tester le point de terminaison d'authentification

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 Using dj-rest-auth to integrate GitHub authentication in your Django project et lorsque vous cliquez sur le bouton Continuer, vous devriez être redirigé vers la page d'autorisation de GitHub Using dj-rest-auth to integrate GitHub authentication in your Django project

Considération supplémentaire

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. Using dj-rest-auth to integrate GitHub authentication in your Django project

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 Using dj-rest-auth to integrate GitHub authentication in your Django project

Différence entre dj-auth-rest et social-auth-app-django

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

Conclusion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal