繁體中文(香港)
  • svelte
  • sveltekit
  • node
  • 教程
  • 身份驗證
  • oauth
  • oidc
  • 身份

使用 Logto 構建 SvelteKit 身份驗證

學習如何通過整合 Logto SDK 來使用 SvelteKit 構建用戶身份驗證流程。

Gao
Gao
Founder

開始使用

簡介

  • Logto 是一個開源的 Auth0 替代方案,用於構建身份基礎設施。它支持各種登錄方式,包括用戶名、電郵、電話號碼和流行的社交登錄,例如 Google 和 GitHub。
  • SvelteKit 是一個用於使用 Svelte 快速開發強大和高性能 Web 應用程序的框架。

在本教程中,我們將向你展示如何通過集成 Logto SDK 來使用 SvelteKit 構建用戶身份驗證流程。教程使用 TypeScript 作為編程語言。

先決條件

在開始之前,請確保你具備以下條件:

  • 一個 Logto 帳戶。如果你還沒有,可以 免費註冊
  • A SvelteKit 開發環境和一個項目。

創建一個 Logto 應用程序

要開始,請創建一個類型為 "傳統網頁" 的 Logto 應用程序。按照以下步驟創建 Logto 應用程序:

  1. 登錄到 Logto 控制台
  2. 在左側導航欄中,點擊 應用程序
  3. 點擊 創建應用程序
  4. 在打開的頁面中,找到 "傳統網頁" 部分並定位到 "SvelteKit" 卡片。
  5. 點擊 開始構建,輸入你的應用程序名稱。
  6. 點擊 創建

然後你應該會看到一個互動指南,指導你如何將 Logto SDK 集成到你的 SvelteKit 應用程序中。以下內容可以作為未來的參考。

整合 Logto SDK

安裝

通過你喜愛的套件管理器安裝 Logto SDK:

添加 Logto hook

在你的 hooks.server.ts 文件中,添加以下代碼將 Logto hook 注入到你的服務器中:

由於這些信息是敏感的,建議使用環境變量:

如果你有多個 hooks,可以使用 the sequence() 助手函數 來鏈接它們:

現在你可以在 locals 對象中訪問 Logto 客戶端。對於 TypeScript,你可以將類型添加到 app.d.ts 中:

我們稍後會討論 user 對象。

實現登錄和登出

配置重定向 URI

切換到 Logto 控制台的應用程序詳細信息頁面。添加一個重定向 URI http://localhost:3000/callback

重定向 URI 是 OAuth 2.0 的概念,表示身份驗證後應重定向的位置。

同樣,將 http://localhost:3000/ 添加到 "登出後重定向 URI" 部分。

登出後重定向 URI 是 OAuth 2.0 的概念,表示登出後應重定向的位置。

然後點擊 "保存" 來保存更改。

回到你的應用,在你希望實現登錄和登出的頁面中,定義以下操作:

然後在你的 Svelte 組件中使用這些操作:

顯示用戶信息

要顯示用戶的信息,你可以將 locals.user 對象注入到佈局中,使其在所有頁面中可用:

在你的 Svelte 組件中:

检查点:運行應用程序

現在你可以運行應用程序並嘗試使用 Logto 登錄/登出:

  1. 在瀏覽器中打開應用程序,你應該會看到 "登錄" 按鈕。
  2. 點擊 "登錄" 按鈕,你應該會被重定向到 Logto 登錄頁面。
  3. 登錄後,你應該會被重定向回應用程序,並且你應該會看到用戶數據和 "登出" 按鈕。
  4. 點擊 "登出" 按鈕,你應該會被重定向到 Logto 登出頁面,然後被重定向回應用程序,處於未登錄狀態。

如果在集成過程中遇到任何問題,請隨時 加入我們的 Discord 服務器 與社區和 Logto 團隊聊天!

進一步閱讀