繁體中文(台灣)
  • auth
  • authentication
  • identity
  • integration
  • capacitor
  • capacitorjs
  • oidc
  • oauth
  • cross-platform

使用 Logto 建立 CapacitorJS 認證

在本教程中,我們將展示如何在 Capacitor 中使用 Logto 建立認證流程。這將使你能夠輕鬆創建跨平台的登入和註冊流程。

Gao
Gao
Founder

介紹

  • Logto 是一個現代的 Auth0 替代方案,可以以最小的努力構建客戶身份基礎設施。它支持多種登錄方法,包括用戶名、電子郵件、電話號碼和流行的社交登入,如 Google 和 GitHub。
  • Capacitor 是一個開源的原生運行時,用於構建 Web Native 應用程序。

在本教程中,我們將展示如何在 Capacitor 中使用 Logto 建立認證流程。這將使你能夠輕鬆創建跨平台的登入和註冊流程。

先決條件

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

  • 一個 Logto 帳戶。如果你還沒有,可以免費註冊
  • 一個 Capacitor 項目。你可以按照官方指南創建一個。

創建 Logto 應用程序

要開始,創建一個 "Native" 類型的 Logto 應用程序。Logto 應用程序充當 OAuth 2.0 和 OpenID Connect (OIDC) 流程中的客戶端應用程序。按照以下步驟創建 Logto 應用程序:

  1. 登錄到 Logto Cloud Console
  2. 在左側導航欄中,點擊 Applications
  3. 點擊 Create application
  4. 選擇 Native 作為應用程序類型,並輸入應用程序名稱。
  5. 點擊 Create
Create Logto application

創建 Logto 應用程序後,配置重定向 URI。重定向 URI 用於在認證流程後將用戶重定向回你的應用程序。

確保 URI 重定向到 Capacitor 應用程序,例如 com.example.app://callback。值可能根據你的 Capacitor 應用程序配置而有所不同。詳情請參見 Capacitor 深層鏈接

更新重定向 URI 後請記得點擊 Save Changes

如果你不確定重定向 URI,可以暫時留空,稍後再更新。

設置 Capacitor

假設你已經有一個 Capacitor 項目,本教程不依賴於任何框架,所以你可以使用任何你喜歡的 UI 框架並相應地更新代碼。

安裝依賴

初始化 Logto 客戶端

  • endpoint 是 Logto API 的端點。你可以在內建指南或租戶設置的 Domains 部分找到。
  • appId 是 Logto 應用程序 ID。你可以在應用程序詳細信息頁面找到。

實現登錄按鈕

將以下代碼添加到登錄按鈕的 onClick 處理器中:

com.example.app://callback 替換為你在 Logto 應用程序中配置的重定向 URI。

檢查點:觸發認證流程

運行 Capacitor 應用程序並點擊登錄按鈕。一個瀏覽器窗口將會打開,重定向到 Logto 登錄頁面。

Logto sign-in page

登出

由於 Capacitor 在 iOS 上使用 Safari 查看控制器和在 Android 上使用 Chrome 自定義標籤,認證狀態可以暫時持續。然而,有時用戶可能希望立即登出應用程序。在這種情況下,我們可以使用 signOut 方法來登出用戶:

signOut 方法有一個可選的參數,用於登出後的重定向 URI。如果未提供,則用戶將被重定向到 Logto 的登出頁面:

Logto sign-out page

用戶需要點擊“完成”以關閉網頁視圖並返回到 Capacitor 應用程序。如果你希望自動將用戶重定向回 Capacitor 應用程序,可以提供登出後的重定向 URI:

確保登出後的重定向 URI 重定向到 Capacitor 應用程序,並記得將登出後的重定向 URI 添加到 Logto Console:

Logto redirect URI configuration

檢查點:完成認證流程

再次運行 Capacitor 應用程序並點擊登錄按鈕。如果一切順利,當認證流程完成後,Capacitor 應用程序將收到登錄結果並在控制台打印用戶聲明。

Capacitor iOS app

然後點擊登出按鈕,Capacitor 應用程序將被重定向到 Logto 登出頁面。如果配置了登出後的重定向 URI,它將自動重定向回 Capacitor 應用程序。

現在你可以在 Logto Cloud Console 中配置認證流程,而無需編寫複雜的代碼。此配置將適用於所有客戶端應用程序,確保一致的用戶體驗。

如果在整合過程中遇到任何問題,請隨時通過郵件 [email protected] 與我們聯繫,或加入我們的 Discord 服務器

進一步閱讀