chrome.webAuthenticationProxy

說明

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

權限

webAuthenticationProxy

可用性

Chrome 115 以上版本 MV3 以上

類型

CreateRequest

屬性

  • requestDetailsJson

    字串

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

  • requestId

    數字

    要求的不透明 ID。

CreateResponseDetails

屬性

  • 錯誤

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

  • requestId

    數字

    CreateRequestrequestId

  • responseJson

    string optional

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

DOMExceptionDetails

屬性

  • 訊息

    字串

  • 名稱

    字串

GetRequest

屬性

  • requestDetailsJson

    字串

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

  • requestId

    數字

    要求的不透明 ID。

GetResponseDetails

屬性

  • 錯誤

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

  • requestId

    數字

    CreateRequestrequestId

  • responseJson

    string optional

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

IsUvpaaRequest

屬性

  • requestId

    數字

    要求的不透明 ID。

IsUvpaaResponseDetails

屬性

  • isUvpaa

    布林值

  • requestId

    數字

方法

attach()

Promise
chrome.webAuthenticationProxy.attach(
  callback?: function,
)

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

一般來說,遠端桌面擴充功能會在偵測到對這個主機的遠端工作階段附件後呼叫這個方法。如果這個方法傳回錯誤,系統就會停止定期處理 WebAuthn 要求,並引發這個擴充功能 API 的事件。

如果附加了其他副檔名,此方法會失敗並傳回錯誤。

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

參照 onRemoteSessionStateChange 事件,表示將遠端工作階段連結從原生應用程式變更為 (可能已暫停) 擴充功能。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    (error?: string) => void

    • 錯誤

      string optional

傳回

  • Promise<字串 |未定義>

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

completeCreateRequest()

Promise
chrome.webAuthenticationProxy.completeCreateRequest(
  details: CreateResponseDetails,
  callback?: function,
)

回報 navigator.credentials.create() 呼叫的結果。除非要求已取消 (在這種情況下會觸發 onRequestCanceled 事件),否則擴充功能必須針對每個收到的 onCreateRequest 事件呼叫此函式。

參數

傳回

  • 承諾<void>

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

completeGetRequest()

Promise
chrome.webAuthenticationProxy.completeGetRequest(
  details: GetResponseDetails,
  callback?: function,
)

回報 navigator.credentials.get() 呼叫的結果。除非要求已取消 (在這種情況下會觸發 onRequestCanceled 事件),否則擴充功能必須針對每個收到的 onGetRequest 事件呼叫此函式。

參數

  • 詳細資料
  • 回呼

    函式 選用

    callback 參數如下所示:

    () => void

傳回

  • 承諾<void>

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

completeIsUvpaaRequest()

Promise
chrome.webAuthenticationProxy.completeIsUvpaaRequest(
  details: IsUvpaaResponseDetails,
  callback?: function,
)

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

參數

傳回

  • 承諾<void>

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

detach()

Promise
chrome.webAuthenticationProxy.detach(
  callback?: function,
)

移除這項擴充功能成為有效的 Web Authentication API 要求 Proxy。

一般來說,當擴充功能偵測到遠端桌面工作階段已終止時,就會呼叫此方法。當此方法傳回後,擴充功能就會停止成為有效的 Web Authentication API 要求 Proxy。

參照 onRemoteSessionStateChange 事件,表示將遠端工作階段連結從原生應用程式變更為 (可能已暫停) 擴充功能。

參數

  • 回呼

    函式 選用

    callback 參數如下所示:

    (error?: string) => void

    • 錯誤

      string optional

傳回

  • Promise<字串 |未定義>

    Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。

活動

onCreateRequest

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

發生 WebAuthn navigator.credentials.create() 呼叫時觸發。擴充功能必須提供回應,方法是從 requestInfo 使用 requestId 呼叫 completeCreateRequest()

參數

onGetRequest

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

發生 WebAuthn navigator.credentials.get() 呼叫時觸發。擴充功能必須提供回應,方法是從 requestInfo 使用 requestId 呼叫 completeGetRequest()

參數

  • 回呼

    函式

    callback 參數如下所示:

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

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

發生 PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() 呼叫時觸發。擴充功能必須提供回應,方法是從 requestInfo 使用 requestId 呼叫 completeIsUvpaaRequest()

參數

onRemoteSessionStateChange

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

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

檔案內容不可空白。亦即,不需要變更檔案內容就能觸發此事件。

原生主機應用程式可能會在擴充功能 Service Worker 已暫停時,使用這個事件機制指出可能發生的遠端工作階段狀態變更 (例如從卸離至已連接的遠端工作階段狀態,反之亦然)。在這個事件的處理常式中,擴充功能可據此呼叫 attach()detach() API 方法。

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

參數

  • 回呼

    函式

    callback 參數如下所示:

    () => void

onRequestCanceled

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

onCreateRequestonGetRequest 事件遭到取消時 (因為呼叫端取消 WebAuthn 要求或逾時),就會觸發。收到此事件時,擴充功能應在用戶端取消處理作業,取消後,擴充功能就無法完成要求。

參數

  • 回呼

    函式

    callback 參數如下所示:

    (requestId: number) => void

    • requestId

      數字