將你的自定義登入 UI 帶入 Logto Cloud
本教程將指導你完成創建和部署你自己的自定義登入 UI 至 Logto Cloud 的過程。
背景
Logto 提供現成的登入體驗 UI,涵蓋所有 Logto 功能,包括登入、註冊、密碼恢復、單一登錄 (SSO) 等。 用戶還可以使用我們的 "自定義 CSS" 功能來自定義登入體驗 UI 的外觀和風格。
然而,一些用戶仍想深入自定義他們的登入體驗(包括 UI 和認證流程),以符合他們的品牌和特定業務需求。 我們聽到了你的聲音!我們很高興地宣布,"將你的自定義 UI 帶入" 功能現在在 Logto Cloud 中可用。
在本教程中,我們將指導你創建和部署你自己的自定義登入 UI 至 Logto Cloud 的步驟。
先決條件
在你開始之前,請確認你擁有以下內容:
- 一個 Logto Cloud 帳戶和訂閱方案
- 一個已集成 Logto 的應用程序 (快速入門)
- 安裝 Logto tunnel CLI
- 基本的 HTML、CSS 和 JavaScript 知識
為了簡單起見,我們將在以下步驟中使用經典的 "用戶名和密碼" 登入方法。記得在 Logto 控制台中更改你的登入方法。
創建你的自定義登入 UI
對於登入 UI 的最低要求是擁有一個 index.html
文件,其中包含至少用戶名輸 入、密碼輸入和提交按鈕的登入表單。
我使用 ChatGPT 生成了一個範例 HTML,然後我得到了這個粉紅可愛的登入頁面。
我為簡單起見省略了 CSS 樣式,這是 HTML 看起來如此簡單的樣子:
你也可以從你最喜歡的前端框架,如 Create React App、Next.js 或 Vue CLI 開始使用模板。
由於 Logto 是開源的,另一個建議是克隆 Logto Experience 專案,並修改代碼以滿足你的需求。這是完整版 Logto 構建的登入體驗 UI,以 React 和 TypeScript 編寫。
設置 Logto tunnel CLI
Logto tunnel CLI 是一個工具,不僅可以管理你的 HTML 頁面,還可以允許你在本地開發環境中從 HTML 頁面與 Logto 的 Experience API 進行交互。
假設你的 index.html
頁面位於 /path/to/your/custom-ui
,你的 Logto 租戶 ID 是 foobar
,你可以這樣運行命令:
或者,如果你正在使用內置開發服務器的 UI 框架,且你的頁面在 http://localhost:4000
提供服務,你可以像這樣運行命令:
運行命令後,通道服務將在你的本地機器 http://localhost:9000/
上啟動。
從你的應用程序觸發登入
前往你先前創建的應 用程序,將 Logto 端點從 https://foobar.logto.app/
更改為 http://localhost:9000/
在你的 Logto SDK 設定中。
讓我們以我們的 React 範例項目為例:
點擊你應用程序中的 "登入" 按鈕。你應會被重定向到你的自定義登入頁面,而不是內置的 Logto 登入 UI。
與 Logto Experience API 交互
在此步驟中,我們將在你的自定義 UI 中與 Logto Experience API 進行交互。首先,創建一個 script.js
文件,並在你的 index.html
中添加引用。
將以下代碼放入你的 script.js
文件中。
此腳本將在這些 API 的幫助下完成用戶名和密碼登入流程:
PUT /api/experience
- 開始登入交互POST /api/experience/verification/password
- 驗證用戶名和密碼POST /api/experience/identification
- 為當前交互識別用戶POST /api/experience/submit
- 提交登入交互
參考 Logto Experience API 文檔 以獲取更多詳細資訊。
測試你的自定義登入頁面
- 前往你的應用程序並點擊 "登入" 按鈕。
- 你應被重定向至位於
http://localhost:9000/
的自定義登入頁面。 - 輸入用戶名和密碼,並點擊 "提交" 按鈕。
- 如果一切設置正確,你應被重定向回你的應用程 序,並獲得已驗證的用戶資訊。
部署你的自定義登入 UI 至 Logto Cloud
當你在本地開發並測試完你的自定義登入 UI 後,可以將其部署至 Logto Cloud。 只需創建你的自定義 UI 資料夾的壓縮文件,並將其上傳至 Logto 控制台的 "自定義 UI" 部分。
上傳後,保存更改,你的自定義登入 UI 將在你的 Logto Cloud 租戶中上線,取代內置的 Logto 登入體驗。
最後,返回你的應用程序,將端點 URI 更改回你的 Logto cloud 環境:https://foobar.logto.app/
。
這一次,你可以停止 Logto 隧道服務,並且你的應用程序應該可以直接使用在線託管的自定義 UI。
結論
在本教程中,我們帶你完成了實現並部署你自己的自定義登入 UI 至 Logto Cloud 的過程。
通過這個功能,你現在可以深入自定義你的登入 UI 和認證流程,以符合你的品牌和特定業務需求。
編碼愉快! 🚀