關於從舊版 Google 登入遷移

為簡化應用程式的驗證體驗,並確保開發做法能因應未來變化,請從舊版 Android 適用的 Google 登入遷移至 Android Credential Manager。Android 版 Google 登入 (com.google.android.gms:play-services-auth 的一部分) 已淘汰,並將在日後的版本中從 Google Play 服務 Auth SDK 移除。

本指南將說明下列主題:

  • 改用 Credential Manager API 的好處
  • 舊版 SDK 和憑證管理工具的導入方式差異

Credential Manager API 的優點

與舊版 Android 適用的 Google 登入服務相比,Credential Manager 具有幾項重要優勢。提供簡化且整合的 API,支援新式功能和做法,同時提升使用者的驗證體驗。如要進一步瞭解 Credential Manager,請參閱「Credential Manager 功能」和網誌文章

導入「使用 Google 帳戶登入」功能的主要優點包括:

  • 統一 API:為所有登入方法提供單一整合點,包括密碼金鑰、密碼和聯合登入機制。
  • 支援「使用 Google 帳戶登入」按鈕:完全支援標準按鈕,可直接放入現有的 UI 流程。
  • 流暢的登入功能:直接提示使用者輕觸一下即可登入 Google 帳戶,減少加入程序中的阻礙。
  • 確保安全性:內建支援密碼金鑰,這是無密碼驗證的新標準。

方法差異

舊版和新版「使用 Google 帳戶登入」憑證管理工具體驗的差異如下:

  • 如果您先前使用舊版 Google 登入功能搭配「silentSignIn」,自動登入的憑證管理工具行為在使用者體驗上會有些微差異。
    • 使用 Credential Manager 時,請將 filterByAuthorizedAccounts 設為 true,並將 setAutoSelectEnabled 設為 true,藉此要求驗證。這會短暫顯示底部功能表,不需要使用者互動。
    • 結果類似於 silentSignIn
  • 舊版 Google 登入 SDK 可在一次 API 呼叫中處理驗證和授權,但更新後的 Credential Manager 實作方式會將這些視為不同的動作:
    • 驗證:使用 Credential Manager 讓使用者登入應用程式。
    • 授權:針對特定動作 (例如存取 Google 雲端硬碟),請使用 AuthorizationClient API。如要進一步瞭解授權,請參閱「授權存取使用者資料」。這種區隔方式有助於將使用者流程對應至使用者意圖。使用者可以透過 Google 帳戶註冊或登入。應用程式需要授權權限時,您可以分別要求,不必只在登入時要求。