profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Erstellen Sie Django-Ansichten und konfigurieren Sie Routen

Erstellen Sie in „views.py“ die folgenden Methoden zum Rendern der Anmelde- und Profilseiten:

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(\\\"/\\\")

Konfigurieren Sie die Routen in 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\\')]

Ausführen der Django-Anwendung

Um Ihre Django-Anwendung zu starten, verwenden Sie den folgenden Befehl:

python manage.py runserver

Besuchen Sie http://localhost:8000 in Ihrem Webbrowser und Sie sollten sehen, dass die Corbado-UI-Komponente nahtlos integriert ist.

\\\"Tutorial:

Abschluss

Diese Anleitung führte Sie durch den Prozess des Hinzufügens einer Passkey-basierten Authentifizierung zu einer Django-Anwendung mithilfe der Corbado-Komponenten. Dieser Ansatz erhöht nicht nur die Sicherheit durch die Implementierung einer passwortlosen Authentifizierung, sondern vereinfacht auch die Sitzungsverwaltung. Weitere Einzelheiten zu den Sitzungsverwaltungsfunktionen von Corbado finden Sie in der offiziellen Dokumentation.

","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"}}
„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Tutorial: Passkeys in Django (Python) integrieren

Tutorial: Passkeys in Django (Python) integrieren

Veröffentlicht am 31.08.2024
Durchsuche:151

Einführung

In diesem Leitfaden führen wir Sie durch die Schritte zur Integration der Passkey-Authentifizierung in eine Python-Django-Webanwendung. Wir werden die Passkey-First-UI-Komponente von Corbado verwenden, die sich nahtlos mit einem Passkey-Backend (einschließlich WebAuthn-Server) verbindet und so den Integrationsprozess unkompliziert und effizient macht.

Lesen Sie hier das vollständige Original-Tutorial

Voraussetzungen für das Django-Passkey-Projekt

Bevor wir mit der Implementierung beginnen, stellen Sie sicher, dass Sie über grundlegende Kenntnisse von Django, Python, HTML und JavaScript verfügen. Wenn Sie mit diesen Technologien vertraut sind, können Sie leichter zurechtkommen.

Einrichten des Django-Projekts

1. Initialisieren Sie Ihr Django-Projekt

Wenn Django nicht auf Ihrem Computer installiert ist, können Sie es installieren, indem Sie den folgenden Befehl ausführen:

pip install Django==4.2.7

Als nächstes installieren Sie das Corbado Python SDK für Passkeys:

pip install passkeys

Erstellen Sie jetzt ein neues Django-Projekt:

django-admin startproject passkeys_demo
cd passkeys_demo

Dadurch wird ein passkeys_demo-Verzeichnis generiert, das Ihre Django-Projektdateien enthält.

2. Konfigurieren Sie Umgebungsvariablen

Erstellen Sie in Ihrem Projektverzeichnis eine .env-Datei zum Speichern von Umgebungsvariablen. Sie benötigen eine Projekt-ID und ein API-Geheimnis, die Sie im Corbado-Entwicklerpanel erhalten können (Sie müssen im Entwicklerpanel ein Corbado-Projekt erstellen):

PROJECT_ID=your_project_id
API_SECRET=your_api_secret

Installieren Sie das django-environ-Paket, um diese Variablen in Ihre Django-Einstellungen zu laden:

pip install django-environ

In Ihrer Settings.py importieren Sie environ und konfigurieren es so, dass es die .env-Datei liest:

import environ

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

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

3. Erstellen Sie Django-Vorlagen mit Sitzungsverwaltung

Erstellen Sie ein Vorlagenverzeichnis in Ihrem passkeys_demo-Projekt. Erstellen Sie in diesem Verzeichnis „index.html“ für die Anmeldeseite und „profile.html“ für die Benutzerprofilseite.

index.html:


  
    
    
  
  
    

    
profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Erstellen Sie Django-Ansichten und konfigurieren Sie Routen

Erstellen Sie in „views.py“ die folgenden Methoden zum Rendern der Anmelde- und Profilseiten:

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("/")

Konfigurieren Sie die Routen in 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')
]

Ausführen der Django-Anwendung

Um Ihre Django-Anwendung zu starten, verwenden Sie den folgenden Befehl:

python manage.py runserver

Besuchen Sie http://localhost:8000 in Ihrem Webbrowser und Sie sollten sehen, dass die Corbado-UI-Komponente nahtlos integriert ist.

Tutorial: Integrate Passkeys into Django (Python)

Abschluss

Diese Anleitung führte Sie durch den Prozess des Hinzufügens einer Passkey-basierten Authentifizierung zu einer Django-Anwendung mithilfe der Corbado-Komponenten. Dieser Ansatz erhöht nicht nur die Sicherheit durch die Implementierung einer passwortlosen Authentifizierung, sondern vereinfacht auch die Sitzungsverwaltung. Weitere Einzelheiten zu den Sitzungsverwaltungsfunktionen von Corbado finden Sie in der offiziellen Dokumentation.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/corbado/tutorial-integrate-passkeys-into-django-python-4bip?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3