搜尋
首頁web前端js教程如何將密鑰整合到 Svelte 中

在本教程中,我們將逐步介紹在 Svelte 應用程式中實現基於密碼的身份驗證的過程。您將學習如何整合 Corbado 的金鑰 UI 元件以獲得無縫且安全的登入體驗。本指南假設您基本上熟悉 Svelte、JavaScript、HTML 和 CSS。

如果您準備好按照程式碼進行操作,可以在 GitHub 儲存庫中找到完整的範例。

在這裡閱讀原始的完整教學

先決條件

開始之前,請確保您的電腦上安裝了 Node.js 和 NPM。此外,Svelte 的基礎知識以及 TypeScript 將有助於學習本教學。

How To Integrate Passkeys into Svelte

專案結構概覽

此範例的項目結構如下所示:

.
├── .env
├── package.json
└── src
    ├── app.html
    └── routes
        ├── +layout.svelte
        ├── +layout.server.ts
        ├── +page.svelte
        └── profile
            └── +page.svelte

我們將只專注於實作金鑰的基本檔案。請隨意參考完整的 GitHub 儲存庫以取得任何其他文件。

設定新的 Svelte 項目

首先,透過執行以下命令初始化一個新的 Svelte 專案:

npm create svelte@latest example-passkeys-svelte
cd example-passkeys-svelte

在設定過程中,選擇以下選項:

  • 應用程式範本: 骨架專案
  • 類型檢查: 使用 TypeScript
  • 其他選項: 包括 ESLint 和 Prettier 用於程式碼品質檢查 設定完成後,安裝所需的依賴項:
npm install @corbado/web-js

如果您使用 TypeScript,也可以安裝 Corbado 類型以增強開發:

npm install -D @corbado/types

設定 Corbado 帳戶和項目

存取 Corbado 開發者面板並建立新帳戶。在專案設定精靈中,首先為您的專案選擇適當的名稱。對於產品選擇,請選擇“Corbado Complete”。隨後,指定您的技術堆疊並選擇“DEV”以及“Corbado 會話管理”選項。之後,您將獲得更多基礎設定指導。

在應用程式設定中,定義您的應用程式 URL 和依賴方 ID,如下所示:

  • 應用程式網址:http://localhost:5173
  • Reyling 派對 ID:本地主機 最後,從開發人員面板檢索您的專案 ID 並將其儲存在您的環境文件中。您可以在 Corbado API 存取下找到它。

您的環境文件應如下所示:

VITE_CORBADO_PROJECT_ID=<your-project-id>

</your-project-id>

稍後您將需要它來將 Corbado UI 元件嵌入到您的 Svelte 應用程式中。

嵌入 Corbado 的 Passkey UI 元件

接下來,我們將把用於金鑰驗證的 Corbado UI 元件整合到我們的 Svelte 應用程式中。首先,停用伺服器端渲染(SSR),因為 Corbado 目前的軟體包版本不支援它。

在 +layout.server.ts 中,加入以下內容:

export const ssr = false;

在 +layout.server 中,安裝應用程式時初始化 Corbado:

<script lang="ts">
    import Corbado from "@corbado/web-js";
    import { onMount } from "svelte";

    const PROJECT_ID = import.meta.env.VITE_CORBADO_PROJECT_ID;
    let isInitialized = false;onMount(async () => {
        await Corbado.load({
            projectId: PROJECT_ID,
            darkMode: 'off'
        });
        isInitialized = true;
    });
</script>
<div>
    {#if isInitialized}
        <slot></slot>
    {/if}
</div>

此程式碼確保僅在使用您的專案初始化 Corbado 後才載入 UI。

設定身份驗證 UI

接下來,我們在 +page.svelte 檔案中新增註冊和登入功能。此頁面將處理使用者身份驗證並在登入後重新導向至個人資料頁面

<script lang="ts">
    import Corbado from '@corbado/web-js';
    import { onMount } from 'svelte';let authElement: HTMLDivElement;
    onMount(() => {
        Corbado.mountAuthUI(authElement, {
            onLoggedIn: () => window.location.href = "/profile"
        });
    });
</script>
<div bind:this="{authElement}"></div>

此程式碼初始化登入元件並將其綁定到 authElement div,在使用者登入後處理重定向。

個人資料頁

登入成功後,個人資料頁面顯示使用者基本資訊。它還提供了一個註銷按鈕來結束會話。

<script lang="ts">
    import Corbado from "@corbado/web-js";
    import { onMount } from "svelte";let user = undefined;
    onMount(() => {
        user = Corbado.user;
    });
    async function handleLogout() {
        await Corbado.logout();
        window.location.href = "/";
    }
</script>
<div>
    {#if user}
        <h1 id="Profile-Page">Profile Page</h1>
        <p>User-id: {user.sub}</p>
        <p>Name: {user.name}</p>
        <button on:click="{handleLogout}">Logout</button>
    {:else}
        <h1 id="You-aren-t-logged-in">You aren't logged in.</h1>
        <p>Go <a href="/">Home</a></p>
    {/if}
</div>

此頁面檢查使用者是否已通過身份驗證,顯示其詳細信息,並提供登出選項。

運行應用程式

一切設定完畢後,執行下列指令啟動開發伺服器:

npm run dev

該應用程式可透過 http://localhost:5173 存取。

How To Integrate Passkeys into Svelte

結論

在本教學中,我們介紹如何使用 Corbado 在 Svelte 應用程式中實作金鑰驗證。這種整合允許安全、無密碼登錄,從而提高用戶體驗和安全性。透過使用 Corbado 的會話管理,我們可以輕鬆檢索使用者資料並管理應用程式中的會話。

有關更高級的實現,例如在伺服器端檢索使用者數據,請參閱 Corbado 文件。

以上是如何將密鑰整合到 Svelte 中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),