profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Создайте представления Django и настройте маршруты.

В view.py создайте следующие методы для отрисовки страниц входа и профиля:

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

Настройте маршруты в 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\\')]

Запуск приложения Django

Чтобы запустить приложение Django, используйте следующую команду:

python manage.py runserver

Посетите http://localhost:8000 в своем веб-браузере, и вы увидите, что компонент пользовательского интерфейса Corbado легко интегрируется.

\\\"Tutorial:

Заключение

Это руководство провело вас через процесс добавления аутентификации на основе пароля в приложение Django с использованием компонентов Corbado. Этот подход не только повышает безопасность за счет реализации аутентификации без пароля, но и упрощает управление сеансами. Более подробную информацию о возможностях управления сеансами Corbado можно найти в официальной документации.

","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"}}
«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Учебное пособие: интеграция ключей доступа в Django (Python)

Учебное пособие: интеграция ключей доступа в Django (Python)

Опубликовано 31 августа 2024 г.
Просматривать:667

Введение

В этом руководстве мы покажем вам, как интегрировать аутентификацию с помощью пароля в веб-приложение Python Django. Мы будем использовать компонент пользовательского интерфейса Corbado, ориентированный на ключ доступа, который легко подключается к серверной части пароля (включая сервер WebAuthn), что делает процесс интеграции простым и эффективным.

Полную версию оригинального руководства можно прочитать здесь

Предварительные условия проекта Django Passkey

Прежде чем мы приступим к реализации, убедитесь, что у вас есть базовое понимание Django, Python, HTML и JavaScript. Знакомство с этими технологиями поможет вам легче ориентироваться.

Настройка проекта Django

1. Инициализируйте свой проект Django.

Если Django не установлен на вашем компьютере, вы можете установить его, выполнив следующую команду:

pip install Django==4.2.7

Затем установите Corbado Python SDK для ключей доступа:

pip install passkeys

Теперь создайте новый проект Django:

django-admin startproject passkeys_demo
cd passkeys_demo

При этом будет создан каталог passkeys_demo, содержащий файлы вашего проекта Django.

2. Настройте переменные среды

В каталоге проекта создайте файл .env для хранения переменных среды. Вам нужен идентификатор проекта и секрет API, которые вы можете получить на панели разработчика Corbado (вам необходимо создать проект Corbado на панели разработчика):

PROJECT_ID=your_project_id
API_SECRET=your_api_secret

Установите пакет django-environ, чтобы загрузить эти переменные в настройки Django:

pip install django-environ

В файле settings.py импортируйте среду и настройте ее для чтения файла .env:

import environ

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

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

3. Создайте шаблоны Django с помощью управления сеансами

Создайте каталог шаблонов внутри вашего проекта passkeys_demo. В этом каталоге создайте index.html для страницы входа и Profile.html для страницы профиля пользователя.

index.html:


  
    
    
  
  
    

    
profile.html:

Protected Page ?

User ID: {{ USER_ID }}

Name: {{ USER_NAME }}

Email: {{ USER_EMAIL }}

4. Создайте представления Django и настройте маршруты.

В view.py создайте следующие методы для отрисовки страниц входа и профиля:

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

Настройте маршруты в 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')
]

Запуск приложения Django

Чтобы запустить приложение Django, используйте следующую команду:

python manage.py runserver

Посетите http://localhost:8000 в своем веб-браузере, и вы увидите, что компонент пользовательского интерфейса Corbado легко интегрируется.

Tutorial: Integrate Passkeys into Django (Python)

Заключение

Это руководство провело вас через процесс добавления аутентификации на основе пароля в приложение Django с использованием компонентов Corbado. Этот подход не только повышает безопасность за счет реализации аутентификации без пароля, но и упрощает управление сеансами. Более подробную информацию о возможностях управления сеансами Corbado можно найти в официальной документации.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/corbado/tutorial-integrate-passkeys-into-django-python-4bip?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3