天天看點

ios12----密碼填充功能

記錄一些官方文檔的翻譯,裡面是一些配置密碼自動填充時官方給出的所有方法,後續會重新整理一份在實際項目上的應用

認證服務

為密碼管理器應用程式定義新的擴充點,以便與密碼自動填充內建。

概觀

使用身份驗證服務架構将密碼管理器應用程式與密碼自動填充內建。您還可以使用所有使用者在應用程式和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服務登入頁面的視圖控制器。

官方連結

繼續閱讀