profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Crie visualizações Django e configure rotas

Em views.py, crie os seguintes métodos para renderizar as páginas de login e 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(\\\"/\\\")

Configure as rotas em 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\\')]

Executando o aplicativo Django

Para iniciar sua aplicação Django, use o seguinte comando:

python manage.py runserver

Visite http://localhost:8000 em seu navegador da web e você verá o componente Corbado UI integrado perfeitamente.

\\\"Tutorial:

Conclusão

Este guia orientou você no processo de adição de autenticação baseada em chave de acesso a um aplicativo Django usando os componentes do Corbado. Essa abordagem não apenas aumenta a segurança ao implementar a autenticação sem senha, mas também simplifica o gerenciamento de sessões. Para mais detalhes sobre os recursos de gerenciamento de sessões do Corbado, consulte a documentação 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"}}
"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Tutorial: Integrar chaves de acesso ao Django (Python)

Tutorial: Integrar chaves de acesso ao Django (Python)

Publicado em 31/08/2024
Navegar:182

Introdução

Neste guia, orientaremos você nas etapas para integrar a autenticação de chave de acesso em um aplicativo web Python Django. Estaremos utilizando o componente UI de chave de acesso do Corbado, que se conecta perfeitamente a um back-end de chave de acesso (incl. servidor WebAuthn), tornando o processo de integração simples e eficiente.

Leia o tutorial original completo aqui

Pré-requisitos do projeto Django Passkey

Antes de prosseguirmos com a implementação, certifique-se de ter um conhecimento básico de Django, Python, HTML e JavaScript. A familiaridade com essas tecnologias ajudará você a acompanhar com mais facilidade.

Configurando o projeto Django 

1. Inicialize seu projeto Django

Se o Django não estiver instalado em sua máquina, você pode instalá-lo executando o seguinte comando:

pip install Django==4.2.7

Em seguida, instale o Corbado Python SDK para chaves de acesso:

pip install passkeys

Agora, crie um novo projeto Django:

django-admin startproject passkeys_demo
cd passkeys_demo

Isso irá gerar um diretório passkeys_demo contendo os arquivos do seu projeto Django.

2. Configurar variáveis ​​de ambiente

No diretório do seu projeto, crie um arquivo .env para armazenar variáveis ​​de ambiente. Você precisa de um ID do projeto e um segredo de API que pode ser obtido no painel do desenvolvedor Corbado (você precisa criar um projeto Corbado no painel do desenvolvedor):

PROJECT_ID=your_project_id
API_SECRET=your_api_secret

Instale o pacote django-environ para carregar essas variáveis ​​nas configurações do Django:

pip install django-environ

Em seu settings.py, importe o ambiente e configure-o para ler o arquivo .env:

import environ

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

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

3. Crie modelos Django com gerenciamento de sessão

Crie um diretório de modelos dentro do seu projeto passkeys_demo. Dentro deste diretório, crie index.html para a página de login e profile.html para a página de perfil do usuário.

index.html:


  
    
profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Crie visualizações Django e configure rotas

Em views.py, crie os seguintes métodos para renderizar as páginas de login e 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("/")

Configure as rotas em 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')
]

Executando o aplicativo Django

Para iniciar sua aplicação Django, use o seguinte comando:

python manage.py runserver

Visite http://localhost:8000 em seu navegador da web e você verá o componente Corbado UI integrado perfeitamente.

Tutorial: Integrate Passkeys into Django (Python)

Conclusão

Este guia orientou você no processo de adição de autenticação baseada em chave de acesso a um aplicativo Django usando os componentes do Corbado. Essa abordagem não apenas aumenta a segurança ao implementar a autenticação sem senha, mas também simplifica o gerenciamento de sessões. Para mais detalhes sobre os recursos de gerenciamento de sessões do Corbado, consulte a documentação oficial.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/corbado/tutorial-integrate-passkeys-into-django-python-4bip?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3