註冊與登入
註冊與登入是終端使用者進行驗證 (Authentication) 並授權 (Authorization) 存取用戶端應用程式的核心互動流程。作為一個以 OIDC 為基礎的集中式 CIAM 平台,Logto 為多個用戶端應用程式與平台上的使用者提供統一的登入體驗。
使用者流程
在典型的 OIDC 驗證流程中,使用者首先開啟用戶端應用程式。用戶端應用程式會向 Logto OIDC 簽發者 (Issuer) 發送 授權請求 (Authorization request)。若使用者尚未有有效的互動階段,Logto 會將使用者導向 Logto 託管的登入體驗頁面。使用者在 Logto 體驗頁面上互動並提供必要的憑證以完成驗證。一旦驗證成功,Logto 會將使用者重導回用戶端應用程式,並帶上 授權碼 (Authorization code)。用戶端應用程式隨後會攜帶授權碼向 Logto OIDC 簽發者發送 權杖請求 (Token request) 以取得權杖。
使用者互動
每當用戶端應用程式發起授權請求時,系統會為每次使用者互動建立一個 互動階段 (Interaction session)。此階段集中管理多個用戶端應用程式間的使用者互動狀態,使 Logto 能提供一致的登入體驗。當使用者在不同用戶端應用程式間切換時,互動階段保持一致,維持使用者的驗證狀態,減少跨平台重複登入的需求。建立 互動階段 後,系統會提示使用者登入 Logto。
Logto 的 體驗應用程式 (Experience app) 是專為登入體驗設計的託管應用程式。當使用者需要驗證時,會被導向 體驗應用程式,在此完成登入並與 Logto 互動。體驗應用程式 利用現有的互動階段來追蹤並支援使用者的互動進度。
為支援並控制這段使用者旅程,Logto 提供一組基於階段的 使用體驗 API (Experience APIs)。這些 API 讓 體驗應用程式 能即時更新與存取互動階段狀態,處理各種使用者識別與驗證方式。
當使用者通過所有驗證與驗證要求後,互動階段會將結果提交給 OIDC 簽發者,使用者即完成驗證並給予同意,安全登入流程正式結束。
體驗頁面僅設計為透過驗證流程存取。為防止搜尋引擎索引這些頁面並避免直接存取,Logto 會自動在體驗 HTML 頁面加入 <meta name="robots" content="noindex, nofollow" />。
登入體驗自訂化
Logto 提供靈活且可自訂的使用者體驗,以滿足各種業務需求,包括自訂品牌、使用者介面與互動流程。體驗應用程式 可根據用戶端應用程式的品牌與安全需求進行調整。
常見登入方式
根據產品需求,你可以在同一個 Logto 託管體驗中組合多種登入方式:
- 電子郵件 / 電話 / 使用者名稱登入:經典的識別碼優先登入,支援密碼或驗證碼。
- 社交登入:使用 Google、GitHub、Facebook 及其他社交提供者登入。
- Passkey 登入:以 WebAuthn passkey 進行無密碼登入,支援直接按鈕、識別碼優先 passkey 驗證與自動填入登入。
常見問題
每個應用程式專屬登入體驗方式或品牌
針對需要不同 登入 UI 的應用程式或組織,Logto 支援 應用程式專屬品牌設定 與 組織專屬品牌設定 的自訂化。
若需根據使用者類型或站點提供不同 登入方式,可使用 驗證參數(如 first_screen 與 direct_sign_in)將使用者導向帶有專屬登入選項的終端頁面。
限制電子郵件網域 / IP 位址 / 地區
若需基於屬性進行存取控制(如限制登入的電子郵件網域、IP 位址或地區),可利用 Logto 的 自訂權杖宣告 (Custom token claims) 功能,根據使用者屬性拒絕或允許授權請求。
登入與註冊的 Headless API
目前 Logto 尚未提供登入與註冊的 headless API。不過,你可以透過 自帶 UI (Bring your own UI) 來自訂登入與註冊體驗。
相關資源
為什麼你應該棄用 Resource Owner Password Credentials (ROPC) 授權類型?
為什麼你應該使用授權碼流程 (Authorization code flow) 而非隱式流程 (Implicit flow)?
權杖式驗證 (Token-based authentication) 與階段式驗證 (Session-based authentication) 比較