browser.webAuthenticationProxy

說明

chrome.webAuthenticationProxy API 可讓在遠端主機上執行的遠端桌面軟體攔截 Web Authentication API (WebAuthn) 要求,以便在本機用戶端上處理這些要求。

權限

webAuthenticationProxy

可用性

Chrome 115 以上版本 瀏覽器。*自 Chrome 148 起 MV3 以上版本

類型

CreateRequest

屬性

  • requestDetailsJson

    字串

    傳遞至 navigator.credentials.create() 的 PublicKeyCredentialCreationOptions,序列化為 JSON 字串。序列化格式與 PublicKeyCredential.parseCreationOptionsFromJSON() 相容。

  • requestId

    數字

    要求的不透明 ID。

CreateResponseDetails

屬性

  • 錯誤

    遠端要求產生的 DOMException (如果有的話)。

  • requestId

    數字

    CreateRequest 的 requestId。

  • responseJson

    字串 選填

    遠端要求產生的 PublicKeyCredential (如有),透過呼叫 href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() 序列化為 JSON 字串。

DOMExceptionDetails

屬性

  • 訊息

    字串

  • name

    字串

GetRequest

屬性

  • requestDetailsJson

    字串

    傳遞至 navigator.credentials.get() 的 PublicKeyCredentialRequestOptions,序列化為 JSON 字串。序列化格式與 PublicKeyCredential.parseRequestOptionsFromJSON() 相容。

  • requestId

    數字

    要求的不透明 ID。

GetResponseDetails

屬性

  • 錯誤

    遠端要求產生的 DOMException (如果有的話)。

  • requestId

    數字

    CreateRequest 的 requestId。

  • responseJson

    字串 選填

    遠端要求產生的 PublicKeyCredential (如有),透過呼叫 href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() 序列化為 JSON 字串。

IsUvpaaRequest

屬性

  • requestId

    數字

    要求的不透明 ID。

IsUvpaaResponseDetails

屬性

  • isUvpaa

    布林值

  • requestId

    數字

方法

attach()

browser.webAuthenticationProxy.attach(): Promise<string | undefined>

將這項擴充功能設為有效的 Web Authentication API 要求 Proxy。

遠端桌面擴充功能通常會在偵測到遠端工作階段附加至這個主機後,呼叫這個方法。這個方法傳回時若未發生錯誤,系統會暫停 WebAuthn 要求的常規處理作業,並引發這個擴充功能 API 的事件。

如果已附加其他擴充功能,這個方法會失敗並傳回錯誤。

遠端桌面工作階段結束後,附加的擴充功能必須呼叫 detach(),才能繼續處理一般 WebAuthn 要求。擴充功能卸載後,會自動解除連結。

請參閱 onRemoteSessionStateChange 事件,瞭解如何從原生應用程式向 (可能已暫停的) 擴充功能發出遠端工作階段連結變更信號。

傳回

  • Promise<string | undefined>

completeCreateRequest()

browser.webAuthenticationProxy.completeCreateRequest(
  details: CreateResponseDetails,
)
: Promise<void>

回報 navigator.credentials.create() 呼叫的結果。擴充功能必須為收到的每個 onCreateRequest 事件呼叫這個方法,除非要求已取消 (在這種情況下,系統會觸發 onRequestCanceled 事件)。

參數

傳回

  • 承諾<void>

completeGetRequest()

browser.webAuthenticationProxy.completeGetRequest(
  details: GetResponseDetails,
)
: Promise<void>

回報 navigator.credentials.get() 呼叫的結果。擴充功能必須為收到的每個 onGetRequest 事件呼叫這個方法,除非要求已取消 (在這種情況下,系統會觸發 onRequestCanceled 事件)。

參數

傳回

  • 承諾<void>

completeIsUvpaaRequest()

browser.webAuthenticationProxy.completeIsUvpaaRequest(
  details: IsUvpaaResponseDetails,
)
: Promise<void>

回報 PublicKeyCredential.isUserVerifyingPlatformAuthenticator() 呼叫的結果。擴充功能必須針對收到的每個 onIsUvpaaRequest 事件呼叫這個方法。

參數

傳回

  • 承諾<void>

detach()

browser.webAuthenticationProxy.detach(): Promise<string | undefined>

移除這項擴充功能,不再做為有效的 Web Authentication API 要求 Proxy。

當擴充功能偵測到遠端桌面工作階段終止時,通常會呼叫這個方法。這個方法傳回後,擴充功能就不再是有效的 Web Authentication API 要求 Proxy。

請參閱 onRemoteSessionStateChange 事件,瞭解如何從原生應用程式向 (可能已暫停的) 擴充功能發出遠端工作階段連結變更信號。

傳回

  • Promise<string | undefined>

事件

onCreateRequest

browser.webAuthenticationProxy.onCreateRequest.addListener(
  callback: function,
)

在 WebAuthn navigator.credentials.create() 呼叫發生時觸發。擴充功能必須呼叫 completeCreateRequest(),並提供 requestInfo 的 requestId,藉此提供回應。

參數

onGetRequest

browser.webAuthenticationProxy.onGetRequest.addListener(
  callback: function,
)

在 WebAuthn navigator.credentials.get() 呼叫發生時觸發。擴充功能必須呼叫 completeGetRequest(),並提供 requestInfo 的 requestId,才能提供回應

參數

  • callback

    函式

    callback 參數如下:

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

browser.webAuthenticationProxy.onIsUvpaaRequest.addListener(
  callback: function,
)

在 PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() 呼叫發生時觸發。擴充功能必須呼叫 completeIsUvpaaRequest(),並提供 requestInfo 的 requestId,才能提供回應

參數

onRemoteSessionStateChange

browser.webAuthenticationProxy.onRemoteSessionStateChange.addListener(
  callback: function,
)

與這項擴充功能相關聯的原生應用程式,可能會在預設使用者資料目錄中名為 WebAuthenticationProxyRemoteSessionStateChange 的目錄內,寫入名稱與擴充功能 ID 相同的檔案,進而觸發這個事件

檔案內容應為空白。也就是說,不必變更檔案內容,也能觸發這項事件。

原生主機應用程式可能會使用這個事件機制,在擴充功能 Service Worker 可能暫停時,發出遠端工作階段狀態可能變更的信號 (例如從中斷連結變更為連結,反之亦然)。在該事件的處理常式中,擴充功能可以視情況呼叫 attach() 或 detach() API 方法。

事件監聽器必須在載入時同步註冊。

參數

  • callback

    函式

    callback 參數如下:

    () => void

onRequestCanceled

browser.webAuthenticationProxy.onRequestCanceled.addListener(
  callback: function,
)

當 onCreateRequest 或 onGetRequest 事件取消時 (因為呼叫端取消 WebAuthn 要求,或要求逾時),就會觸發這個事件。收到這個事件時,擴充功能應取消處理用戶端上的對應要求。要求取消後,擴充功能就無法完成要求。

參數

  • callback

    函式

    callback 參數如下:

    (requestId: number) => void

    • requestId

      數字