開發人員建構軟體時,通常會納入在網路伺服器上執行的模組、在瀏覽器中執行的其他模組,以及其他以原生行動應用程式形式執行的模組。開發人員和使用自家軟體的使用者通常會將這些模組視為單一應用程式。
Google 的 OAuth 2.0 實作支援這個世界。如要使用任何 OAuth2.0 型服務,您必須在 Google API Console中設定軟體。 API Console 中的機構單位是「專案」,可對應至多元件應用程式。您可以針對各個專案提供品牌宣傳資訊,且必須指定應用程式要存取的 API。多元件應用程式的每個元件會以用戶端 ID 來識別,這是 API Console中產生的不重複字串。
跨用戶端授權目標
當應用程式使用 OAuth 2.0 授權時,應用程式會代替使用者要求 OAuth 2.0 存取權杖來存取資源,讓應用程式以一或多個範圍字串來識別資源。一般來說,系統會要求使用者核准存取權。
當使用者授予應用程式特定範圍的存取權時,使用者查看使用者同意畫面,其中包含您在 Google API Console中設定的專案層級產品品牌。因此,Google 會將使用者授予專案中任何用戶端 ID 特定範圍的存取權,讓 Google 知道該應用程式對該範圍的整個應用程式信任。
「作用」在於,只有當應用程式的元件能夠透過 Google 的授權基礎架構 (包括網頁應用程式、Android 應用程式、Chrome 應用程式、iOS 應用程式、原生桌面應用程式和有限的輸入裝置) 進行穩定驗證時,才不應要求使用者重複針對同一個邏輯應用程式存取任何資源。
跨用戶端存取權杖
視執行程式碼的平台而定,軟體可透過多種方式取得 OAuth 2.0 存取權杖。詳情請參閱使用 OAuth 2.0 存取 Google API。一般而言,授予存取權杖後,需要經過使用者核准。
幸好,Google 授權基礎架構在評估是否授權同一專案中的其他使用者時,可以使用指定專案中用戶端 ID 的使用者核准資訊。
「作用」是,如果 Android 應用程式針對特定範圍要求存取權杖,且要求的使用者已針對相同範圍的同一專案授予網頁應用程式權限,系統就不會再次詢問使用者。這有以下兩種做法:如果您的 Android 應用程式已授予範圍存取權,則從相同專案內的其他用戶端 (例如網頁應用程式) 無須再次要求存取權。