profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Cree vistas de Django y configure rutas

En views.py, cree los siguientes métodos para representar las páginas de inicio de sesión y perfil:

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

Configurar las rutas en 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\\')]

Ejecutando la aplicación Django

Para iniciar su aplicación Django, use el siguiente comando:

python manage.py runserver

Visite http://localhost:8000 en su navegador web y debería ver el componente de interfaz de usuario de Corbado integrado perfectamente.

\\\"Tutorial:

Conclusión

Esta guía lo guió a través del proceso de agregar autenticación basada en clave de acceso a una aplicación Django utilizando los componentes de Corbado. Este enfoque no sólo mejora la seguridad al implementar la autenticación sin contraseña, sino que también simplifica la gestión de sesiones. Para obtener más detalles sobre las capacidades de gestión de sesiones de Corbado, consulte la documentación oficial.

","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 trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Tutorial: Integrar claves de acceso en Django (Python)

Tutorial: Integrar claves de acceso en Django (Python)

Publicado el 2024-08-31
Navegar:731

Introducción

En esta guía, lo guiaremos a través de los pasos para integrar la autenticación de clave de acceso en una aplicación web Python Django. Utilizaremos el componente UI de clave de acceso de Corbado, que se conecta perfectamente a un backend de clave de acceso (incluido el servidor WebAuthn), lo que hace que el proceso de integración sea sencillo y eficiente.

Lea el tutorial original completo aquí

Requisitos previos del proyecto Django Passkey

Antes de pasar a la implementación, asegúrese de tener conocimientos básicos de Django, Python, HTML y JavaScript. La familiaridad con estas tecnologías le ayudará a seguirlas más fácilmente.

Configurando el proyecto Django

1. Inicializa tu proyecto Django

Si Django no está instalado en su máquina, puede instalarlo ejecutando el siguiente comando:

pip install Django==4.2.7

A continuación, instale el SDK de Corbado Python para claves de acceso:

pip install passkeys

Ahora, crea un nuevo proyecto Django:

django-admin startproject passkeys_demo
cd passkeys_demo

Esto generará un directorio passkeys_demo que contiene los archivos de tu proyecto Django.

2. Configurar variables de entorno

Dentro del directorio de tu proyecto, crea un archivo .env para almacenar variables de entorno. Necesita un ID de proyecto y un secreto de API que puede obtener desde el panel de desarrollador de Corbado (debe crear un proyecto de Corbado en el panel de desarrollador):

PROJECT_ID=your_project_id
API_SECRET=your_api_secret

Instala el paquete django-environ para cargar estas variables en tu configuración de Django:

pip install django-environ

En tu settings.py, importa el entorno y configúralo para leer el archivo .env:

import environ

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

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

3. Cree plantillas de Django con gestión de sesiones

Cree un directorio de plantillas dentro de su proyecto passkeys_demo. Dentro de este directorio, cree index.html para la página de inicio de sesión y perfil.html para la página de perfil del usuario.

index.html:


  
    
    
  
  
    

    
profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Cree vistas de Django y configure rutas

En views.py, cree los siguientes métodos para representar las páginas de inicio de sesión y perfil:

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

Configurar las rutas en 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')
]

Ejecutando la aplicación Django

Para iniciar su aplicación Django, use el siguiente comando:

python manage.py runserver

Visite http://localhost:8000 en su navegador web y debería ver el componente de interfaz de usuario de Corbado integrado perfectamente.

Tutorial: Integrate Passkeys into Django (Python)

Conclusión

Esta guía lo guió a través del proceso de agregar autenticación basada en clave de acceso a una aplicación Django utilizando los componentes de Corbado. Este enfoque no sólo mejora la seguridad al implementar la autenticación sin contraseña, sino que también simplifica la gestión de sesiones. Para obtener más detalles sobre las capacidades de gestión de sesiones de Corbado, consulte la documentación oficial.

Declaración de liberación Este artículo se reproduce en: https://dev.to/corbado/tutorial-integrate-passkeys-into-django-python-4bip?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3