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، استخدم الأمر التالي:

python manage.py runserver

تفضل بزيارة http://localhost:8000 في متصفح الويب الخاص بك، وسترى مكون Corbado UI مدمجًا بسلاسة.

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

تم النشر بتاريخ 2024-08-31
تصفح:667

مقدمة

في هذا الدليل، سنوجهك عبر خطوات دمج مصادقة مفتاح المرور في تطبيق الويب Python Django. سنستخدم مكون واجهة المستخدم الذي يعتمد مفتاح المرور أولاً في Corbado، والذي يتصل بسلاسة بالواجهة الخلفية لمفتاح المرور (بما في ذلك خادم WebAuthn)، مما يجعل عملية التكامل واضحة وفعالة.

اقرأ البرنامج التعليمي الأصلي الكامل هنا

المتطلبات الأساسية لمشروع Django Passkey

قبل أن نبدأ في التنفيذ، تأكد من أن لديك فهمًا أساسيًا لـ Django وPython وHTML وJavaScript. سيساعدك الإلمام بهذه التقنيات على المتابعة بسهولة أكبر.

إعداد مشروع جانغو

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. إنشاء قوالب جانغو مع إدارة الجلسة

قم بإنشاء دليل قوالب داخل مشروع 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، استخدم الأمر التالي:

python manage.py runserver

تفضل بزيارة http://localhost:8000 في متصفح الويب الخاص بك، وسترى مكون Corbado UI مدمجًا بسلاسة.

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