


Tutorial: Integrasikan Kunci Laluan ke dalam Django (Python)
pengenalan
Dalam panduan ini, kami akan membimbing anda melalui langkah-langkah untuk mengintegrasikan pengesahan kunci laluan ke dalam aplikasi web Python Django. Kami akan menggunakan komponen UI pertama kunci laluan Corbado, yang bersambung dengan lancar ke hujung belakang kunci laluan (termasuk pelayan WebAuthn), menjadikan proses penyepaduan mudah dan cekap.
Baca tutorial asal penuh di sini
Prasyarat Projek Passkey Django
Sebelum kita memasuki pelaksanaan, pastikan anda mempunyai pemahaman asas tentang Django, Python, HTML dan JavaScript. Kebiasaan dengan teknologi ini akan membantu anda mengikuti dengan lebih mudah.
Menyediakan Projek Django
1. Mulakan Projek Django Anda
Jika Django tidak dipasang pada mesin anda, anda boleh memasangnya dengan menjalankan arahan berikut:
pip install Django==4.2.7
Seterusnya, pasang Corbado Python SDK untuk kekunci laluan:
pip install passkeys
Sekarang, buat projek Django baharu:
django-admin startproject passkeys_demo cd passkeys_demo
Ini akan menjana direktori passkeys_demo yang mengandungi fail projek Django anda.
2. Konfigurasikan Pembolehubah Persekitaran
Dalam direktori projek anda, buat fail .env untuk menyimpan pembolehubah persekitaran. Anda memerlukan ID Projek dan rahsia API yang boleh anda perolehi daripada panel pembangun Corbado (anda perlu membuat projek Corbado dalam panel pembangun):
PROJECT_ID=your_project_id API_SECRET=your_api_secret
Pasang pakej django-environ untuk memuatkan pembolehubah ini ke dalam tetapan Django anda:
pip install django-environ
Dalam settings.py anda, import persekitaran dan konfigurasikannya untuk membaca fail .env:
import environ env = environ.Env() environ.Env.read_env() PROJECT_ID = env('PROJECT_ID') API_SECRET = env('API_SECRET')
3. Cipta Templat Django dengan Pengurusan Sesi
Buat direktori templat di dalam projek passkeys_demo anda. Dalam direktori ini, cipta index.html untuk halaman log masuk dan profile.html untuk halaman profil pengguna.
index.html:
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://unpkg.com/@corbado/web-js@latest/dist/bundle/index.css" /> <script src="https://unpkg.com/@corbado/web-js@latest/dist/bundle/index.js"></script> </head> <body> <script> (async () => { await Corbado.load({ projectId: "{{ PROJECT_ID }}", darkMode: "off", setShortSessionCookie: "true", }); const authElement = document.getElementById('corbado-auth'); Corbado.mountAuthUI(authElement, { onLoggedIn: () => { window.location.href = '/profile'; }, }); })(); </script> <div id="corbado-auth"></div> </body> </html> profile.html: <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://unpkg.com/@corbado/web-js@latest/dist/bundle/index.css" /> <script src="https://unpkg.com/@corbado/web-js@latest/dist/bundle/index.js"></script> </head> <body> <h2>Protected Page ?</h2> <p>User ID: {{ USER_ID }}</p> <p>Name: {{ USER_NAME }}</p> <p>Email: {{ USER_EMAIL }}</p> <div id="passkey-list"></div> <button id="logoutButton">Logout</button> <script> (async () => { await Corbado.load({ projectId: "{{ PROJECT_ID }}", darkMode: "off", }); const passkeyListElement = document.getElementById("passkey-list"); Corbado.mountPasskeyListUI(passkeyListElement); const logoutButton = document.getElementById('logoutButton'); logoutButton.addEventListener('click', function() { Corbado.logout() .then(() => { window.location.replace("/"); }) .catch(err => { console.error(err); }); }); })(); </script> </body> </html>
4. Cipta Django Views dan Konfigurasikan Laluan
Dalam views.py, cipta kaedah berikut untuk memaparkan halaman log masuk dan profil:
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("/")
Konfigurasikan laluan dalam urls.py:
from django.urls import path from . import views urlpatterns = [ path("", views.index, name="index"), path("profile/", views.profile, name="profile"), path('<path:unknown_path>/', lambda request, unknown_path: redirect('/'), name='fallback') ]
Menjalankan Aplikasi Django
Untuk memulakan aplikasi Django anda, gunakan arahan berikut:
python manage.py runserver
Lawati http://localhost:8000 dalam penyemak imbas web anda dan anda akan melihat komponen UI Corbado disepadukan dengan lancar.
Kesimpulan
Panduan ini membimbing anda melalui proses menambah pengesahan berasaskan kunci laluan pada aplikasi Django menggunakan komponen Corbado. Pendekatan ini bukan sahaja meningkatkan keselamatan dengan melaksanakan pengesahan tanpa kata laluan tetapi juga memudahkan pengurusan sesi. Untuk butiran lanjut tentang keupayaan pengurusan sesi Corbado, rujuk dokumentasi rasmi.
Atas ialah kandungan terperinci Tutorial: Integrasikan Kunci Laluan ke dalam Django (Python). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Artikel ini telah memilih beberapa laman web projek "selesai" Python dan portal sumber pembelajaran "blockbuster" peringkat tinggi untuk anda. Sama ada anda sedang mencari inspirasi pembangunan, mengamati dan belajar kod sumber peringkat induk, atau secara sistematik meningkatkan keupayaan praktikal anda, platform ini tidak boleh dilepaskan dan dapat membantu anda berkembang menjadi tuan python dengan cepat.

Gunakan subprocess.run () untuk melaksanakan perintah shell dengan selamat dan menangkap output. Adalah disyorkan untuk lulus parameter dalam senarai untuk mengelakkan risiko suntikan; 2. Apabila ciri -ciri shell diperlukan, anda boleh menetapkan shell = benar, tetapi berhati -hati dengan suntikan arahan; 3. Gunakan subprocess.popen untuk merealisasikan pemprosesan output masa nyata; 4. Tetapkan semak = benar untuk membuang pengecualian apabila arahan gagal; 5. Anda boleh secara langsung memanggil rantai untuk mendapatkan output dalam senario mudah; Anda harus memberi keutamaan kepada subprocess.run () dalam kehidupan seharian untuk mengelakkan menggunakan os.system () atau modul yang tidak ditetapkan. Kaedah di atas mengatasi penggunaan teras untuk melaksanakan perintah shell di Python.

Untuk memulakan pembelajaran mesin kuantum (QML), alat pilihan adalah Python, dan perpustakaan seperti Pennylane, Qiskit, Tensorflowquantum atau Pytorchquantum perlu dipasang; Kemudian membiasakan diri dengan proses dengan menjalankan contoh, seperti menggunakan Pennylane untuk membina rangkaian saraf kuantum; kemudian melaksanakan model mengikut langkah -langkah penyediaan set data, pengekodan data, membina litar kuantum parametrik, latihan pengoptimuman klasik, dan lain -lain; Dalam pertempuran sebenar, anda harus mengelakkan mengejar model kompleks dari awal, memberi perhatian kepada batasan perkakasan, mengamalkan struktur model hibrid, dan terus merujuk kepada dokumen terkini dan dokumen rasmi untuk menindaklanjuti pembangunan.

Gunakan sendi Seaborn untuk dengan cepat menggambarkan hubungan dan pengedaran antara dua pembolehubah; 2. 3. Tambah garis regresi dan maklumat ketumpatan kepada jenis = "reg", dan gabungkan marginal_kws untuk menetapkan gaya plot tepi; 4. Apabila jumlah data besar, disarankan untuk menggunakan "hex"

Di Python, perkara -perkara berikut harus diperhatikan apabila menggabungkan rentetan menggunakan kaedah Join (): 1. Gunakan kaedah str.join (), rentetan sebelumnya digunakan sebagai penghubung apabila memanggil, dan objek yang boleh dimatikan dalam kurungan mengandungi rentetan yang akan disambungkan; 2. Pastikan unsur-unsur dalam senarai adalah semua rentetan, dan jika mereka mengandungi jenis bukan rentetan, mereka perlu ditukar terlebih dahulu; 3. Apabila memproses senarai bersarang, anda mesti meratakan struktur sebelum menyambung.

Untuk menguasai crawler web python, anda perlu memahami tiga langkah teras: 1. Gunakan permintaan untuk memulakan permintaan, dapatkan kandungan laman web melalui mendapatkan kaedah, perhatikan untuk menetapkan tajuk, pengendalian pengecualian, dan mematuhi robots.txt; 2. Gunakan BeautifulSoup atau XPath untuk mengekstrak data. Yang pertama sesuai untuk parsing mudah, sementara yang terakhir lebih fleksibel dan sesuai untuk struktur kompleks; 3. Gunakan selenium untuk mensimulasikan operasi penyemak imbas untuk kandungan pemuatan dinamik. Walaupun kelajuannya perlahan, ia dapat mengatasi halaman yang kompleks. Anda juga boleh cuba mencari antara muka API laman web untuk meningkatkan kecekapan.

Senarai rentetan boleh digabungkan dengan kaedah Join (), seperti '' .join (kata) untuk mendapatkan "HelloWorldFrompython"; 2. Senarai nombor mesti ditukar kepada rentetan dengan peta (str, nombor) atau [str (x) forxinnumbers] sebelum menyertai; 3. Mana -mana senarai jenis boleh ditukar secara langsung kepada rentetan dengan kurungan dan petikan, sesuai untuk debugging; 4. Format tersuai boleh dilaksanakan oleh ekspresi penjana yang digabungkan dengan gabungan (), seperti '|' .join (f "[{item}]" foriteminitems) output "[a] | [a]

Pasang PYODBC: Gunakan perintah PipinstallPyoDBC untuk memasang perpustakaan; 2. Sambungkan SQLServer: Gunakan rentetan sambungan yang mengandungi pemacu, pelayan, pangkalan data, uid/pwd atau aman 3. Semak pemacu yang dipasang: Jalankan pyodbc.drivers () dan tapis nama pemacu yang mengandungi 'SQLServer' untuk memastikan nama pemacu yang betul digunakan seperti 'ODBCDriver17 untuk SQLServer'; 4. Parameter utama rentetan sambungan
