profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Créez des vues Django et configurez les routes

Dans vues.py, créez les méthodes suivantes pour afficher les pages de connexion et de profil :

from django.shortcuts import render, redirectfrom django.http import HttpResponsefrom corbado_python_sdk import Config, CorbadoSDK, SessionInterface, UserEntityfrom corbado_python_sdk.entities.session_validation_result import SessionValidationResultfrom corbado_python_sdk.generated.models.identifier import Identifierfrom passkeys_demo.settings import API_SECRET, PROJECT_IDconfig = Config(api_secret=API_SECRET, project_id=PROJECT_ID)sdk = CorbadoSDK(config=config)sessions = sdk.sessionsidentifiers = sdk.identifiersdef index(request):    context = {\\\"PROJECT_ID\\\": PROJECT_ID}    return render(request, \\\"index.html\\\", context)def profile(request):    token = request.COOKIES.get(config.short_session_cookie_name)    try:        if not token:            raise ValueError(\\\"No token found\\\")        validation_result = sessions.get_and_validate_short_session_value(short_session=token)        if validation_result.authenticated:            email_identifiers = identifiers.list_all_emails_by_user_id(                user_id=validation_result.user_id or \\\"\\\"            )            user = sessions.get_current_user(short_session=token)            context = {                \\\"PROJECT_ID\\\": PROJECT_ID,                \\\"USER_ID\\\": user.user_id,                \\\"USER_NAME\\\": user.full_name,                \\\"USER_EMAIL\\\": email_identifiers[0].value,            }            return render(request, \\\"profile.html\\\", context)        else:            return HttpResponse(\\\"You are not authenticated or have not yet confirmed your email.\\\", status=401)    except Exception as e:        print(e)        return redirect(\\\"/\\\")

Configurez les routes dans urls.py :

from django.urls import pathfrom . import viewsurlpatterns = [    path(\\\"\\\", views.index, name=\\\"index\\\"),    path(\\\"profile/\\\", views.profile, name=\\\"profile\\\"),    path(\\'/\\', lambda request, unknown_path: redirect(\\'/\\'), name=\\'fallback\\')]

Exécuter l'application Django

Pour démarrer votre application Django, utilisez la commande suivante :

python manage.py runserver

Visitez http://localhost:8000 dans votre navigateur Web et vous devriez voir le composant de l'interface utilisateur Corbado intégré de manière transparente.

\\\"Tutorial:

Conclusion

Ce guide vous a guidé tout au long du processus d'ajout d'une authentification par mot de passe à une application Django à l'aide des composants de Corbado. Cette approche améliore non seulement la sécurité en mettant en œuvre une authentification sans mot de passe, mais simplifie également la gestion des sessions. Pour plus de détails sur les capacités de gestion de session de Corbado, reportez-vous à la documentation officielle.

","image":"http://www.luping.net/uploads/20240831/172510056566d2f2155b68d.png","datePublished":"2024-08-31T18:36:05+08:00","dateModified":"2024-08-31T18:36:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Tutoriel : Intégrer les clés d'accès dans Django (Python)

Tutoriel : Intégrer les clés d'accès dans Django (Python)

Publié le 2024-08-31
Parcourir:793

Introduction

Dans ce guide, nous vous guiderons à travers les étapes pour intégrer l'authentification par mot de passe dans une application Web Python Django. Nous utiliserons le composant d'interface utilisateur de Corbado, qui se connecte de manière transparente à un backend de clé d'accès (y compris le serveur WebAuthn), ce qui rend le processus d'intégration simple et efficace.

Lisez le tutoriel original complet ici

Conditions préalables au projet Django Passkey

Avant de commencer l'implémentation, assurez-vous d'avoir une compréhension de base de Django, Python, HTML et JavaScript. La familiarité avec ces technologies vous aidera à suivre plus facilement.

Configuration du projet Django

1. Initialisez votre projet Django

Si Django n'est pas installé sur votre machine, vous pouvez l'installer en exécutant la commande suivante :

pip install Django==4.2.7

Ensuite, installez le SDK Corbado Python pour les clés d'accès :

pip install passkeys

Maintenant, créez un nouveau projet Django :

django-admin startproject passkeys_demo
cd passkeys_demo

Cela générera un répertoire passkeys_demo contenant vos fichiers de projet Django.

2. Configurer les variables d'environnement

Dans le répertoire de votre projet, créez un fichier .env pour stocker les variables d'environnement. Vous avez besoin d'un ID de projet et d'un secret API que vous pouvez obtenir à partir du panneau des développeurs Corbado (vous devez créer un projet Corbado dans le panneau des développeurs) :

PROJECT_ID=your_project_id
API_SECRET=your_api_secret

Installez le package django-environ pour charger ces variables dans vos paramètres Django :

pip install django-environ

Dans votre settings.py, importez environ et configurez-le pour lire le fichier .env :

import environ

env = environ.Env()
environ.Env.read_env()

PROJECT_ID = env('PROJECT_ID')
API_SECRET = env('API_SECRET')

3. Créez des modèles Django avec gestion de session

Créez un répertoire de modèles dans votre projet passkeys_demo. Dans ce répertoire, créez index.html pour la page de connexion et profile.html pour la page de profil utilisateur.

index.html :


  
    
profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Créez des vues Django et configurez les routes

Dans vues.py, créez les méthodes suivantes pour afficher les pages de connexion et de profil :

from django.shortcuts import render, redirect
from django.http import HttpResponse
from corbado_python_sdk import Config, CorbadoSDK, SessionInterface, UserEntity
from corbado_python_sdk.entities.session_validation_result import SessionValidationResult
from corbado_python_sdk.generated.models.identifier import Identifier

from passkeys_demo.settings import API_SECRET, PROJECT_ID

config = Config(api_secret=API_SECRET, project_id=PROJECT_ID)
sdk = CorbadoSDK(config=config)
sessions = sdk.sessions
identifiers = sdk.identifiers

def index(request):
    context = {"PROJECT_ID": PROJECT_ID}
    return render(request, "index.html", context)

def profile(request):
    token = request.COOKIES.get(config.short_session_cookie_name)
    try:
        if not token:
            raise ValueError("No token found")
        validation_result = sessions.get_and_validate_short_session_value(short_session=token)
        if validation_result.authenticated:
            email_identifiers = identifiers.list_all_emails_by_user_id(
                user_id=validation_result.user_id or ""
            )
            user = sessions.get_current_user(short_session=token)
            context = {
                "PROJECT_ID": PROJECT_ID,
                "USER_ID": user.user_id,
                "USER_NAME": user.full_name,
                "USER_EMAIL": email_identifiers[0].value,
            }
            return render(request, "profile.html", context)
        else:
            return HttpResponse("You are not authenticated or have not yet confirmed your email.", status=401)
    except Exception as e:
        print(e)
        return redirect("/")

Configurez les routes dans urls.py :

from django.urls import path
from . import views

urlpatterns = [
    path("", views.index, name="index"),
    path("profile/", views.profile, name="profile"),
    path('/', lambda request, unknown_path: redirect('/'), name='fallback')
]

Exécuter l'application Django

Pour démarrer votre application Django, utilisez la commande suivante :

python manage.py runserver

Visitez http://localhost:8000 dans votre navigateur Web et vous devriez voir le composant de l'interface utilisateur Corbado intégré de manière transparente.

Tutorial: Integrate Passkeys into Django (Python)

Conclusion

Ce guide vous a guidé tout au long du processus d'ajout d'une authentification par mot de passe à une application Django à l'aide des composants de Corbado. Cette approche améliore non seulement la sécurité en mettant en œuvre une authentification sans mot de passe, mais simplifie également la gestion des sessions. Pour plus de détails sur les capacités de gestion de session de Corbado, reportez-vous à la documentation officielle.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/corbado/tutorial-integrate-passkeys-into-django-python-4bip?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3