記錄一些官方文檔的翻譯,裡面是一些配置密碼自動填充時官方給出的所有方法,後續會重新整理一份在實際項目上的應用
認證服務
為密碼管理器應用程式定義新的擴充點,以便與密碼自動填充內建。
概觀
使用身份驗證服務架構将密碼管理器應用程式與密碼自動填充內建。您還可以使用所有使用者在應用程式和Safari之間共享持久性cookie和網站資料,以獲得單點登入(SSO)體驗。ASWebAuthenticationSession
要內建您的密碼管理器應用:
- 通過在Xcode中為項目添加Credential Provider Extension目标來配置您的應用程式。
- 支援在使用者使用對象從QuickType欄打開擴充程式時向使用者顯示其憑據清單。ASCredentialServiceIdentifier
- 通過在擴充中使用,指定要在QuickType欄中顯示的憑據。ASCredentialIdentityStore
- 當使用者在其“設定”中啟用密碼管理器時,請指定擴充程式的UI。
添加憑據提供程式擴充
- class ASCredentialProviderExtensionContext 表示憑據提供程式擴充上下文的類。
- class ASCredentialProviderViewController 一個類,它提供用于建立憑據提供程式擴充的标準接口。
實施憑證清單
-
class ASCredentialServiceIdentifier
表示憑證服務辨別符的類。
更新憑據辨別存儲
- class ASCredentialIdentityStore 表示憑證辨別存儲的類。
- class ASCredentialIdentityStoreState 表示憑證辨別存儲狀态的類。
- struct ASCredentialIdentityStoreError 憑據辨別存儲錯誤。
- let ASCredentialIdentityStoreErrorDomain: String
證書
- class ASPasswordCredential 表示密碼憑據的類。
- class ASPasswordCredentialIdentity 表示密碼憑據辨別的類。
與Safari共享資料
-
class ASWebAuthenticationSession
管理在Safari和應用程式之間共享一次性登入的類,也可用于自動登入關聯的應用程式。
- let ASWebAuthenticationSessionErrorDomain: String Web身份驗證會話的錯誤域。
- struct ASWebAuthenticationSessionError
擴充錯誤
- struct ASExtensionError 擴充錯誤。
- let ASExtensionErrorDomain: String 擴充錯誤的錯誤域。
權益
-
自動填充憑證提供程式權利
一個布爾值,訓示應用程式是否可以在使用者權限的情況下為Safari和其他應用程式中的自動填充提供使用者名和密碼。
密鑰: com.apple.developer.authentication-services.autofill-credential-provider
ASWeb 認證會話
管理在Safari和應用程式之間共享一次性登入的類,也可用于自動登入關聯的應用程式。
一個對象可用于使用者與網絡服務進行身份驗證,即使Web服務是由第三方運作。使使用者能夠控制他們是否想要使用來自Safari的現有登入會話。ASWebAuthenticationSessionASWebAuthenticationSession
注意
除會話cookie外,所有cookie都可以與Safari共享。
該應用程式提供指向身份驗證網頁的URL。該頁面将加載到安全的視圖控制器中。使用者可以從網頁上對自己進行身份驗證并授予對應用的通路權限。完成後,該服務将發送帶有身份驗證令牌的回調URL,此URL将通過以下方式傳遞給應用程式。ASWebAuthenticationSession.CompletionHandler
回調URL通常具有自定義URL方案。要使應用程式接收回調URL,它需要在其中注冊自定義URL方案,或者将方案設定為初始化程式中的參數。Info.plistinit(url:callbackURLScheme:completionHandler:)
如果使用者已經通過Safari或其他應用程式登入了Web服務,則可以共享現有的登入資訊。将提供警報以獲得使用者同意共享其現有登入資訊。如果使用者取消警報,會話将被取消,并将使用錯誤代碼調用完成處理程式。ASWebAuthenticationSessionASWebAuthenticationSessionError.Code.canceledLogin
如果使用者在顯示Web服務的登入網頁時點選取消,則會話将被取消,并且将使用錯誤代碼調用完成處理程式。ASWebAuthenticationSessionError.Code.canceledLogin
該應用可以通過呼叫取消會話cancel()。這也将關閉顯示Web服務登入頁面的視圖控制器。
官方連結