說明
chrome.webAuthenticationProxy API 可讓在遠端主機上執行的遠端桌面軟體攔截 Web Authentication API (WebAuthn) 要求,以便在本機用戶端上處理這些要求。
權限
webAuthenticationProxy可用性
類型
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,藉此提供回應。
參數
-
callback
函式
callback參數如下:(requestInfo: CreateRequest) => void
-
requestInfo
-
onGetRequest
browser.webAuthenticationProxy.onGetRequest.addListener(
callback: function,
)
在 WebAuthn navigator.credentials.get() 呼叫發生時觸發。擴充功能必須呼叫 completeGetRequest(),並提供 requestInfo 的 requestId,才能提供回應
參數
-
callback
函式
callback參數如下:(requestInfo: GetRequest) => void
-
requestInfo
-
onIsUvpaaRequest
browser.webAuthenticationProxy.onIsUvpaaRequest.addListener(
callback: function,
)
在 PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() 呼叫發生時觸發。擴充功能必須呼叫 completeIsUvpaaRequest(),並提供 requestInfo 的 requestId,才能提供回應
參數
-
callback
函式
callback參數如下:(requestInfo: IsUvpaaRequest) => void
-
requestInfo
-
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
數字
-