說明
chrome.webAuthenticationProxy
API 可讓遠端主機上執行的遠端桌面軟體攔截 Web Authentication API (WebAuthn) 要求,以便在本機用戶端處理這些要求。
權限
webAuthenticationProxy
可用性
類型
CreateRequest
屬性
-
requestDetailsJson
字串
傳遞至
navigator.credentials.create()
的PublicKeyCredentialCreationOptions
,已序列化為 JSON 字串。序列化格式與PublicKeyCredential.parseCreationOptionsFromJSON()
相容。 -
requestId
數字
要求的不透明 ID。
CreateResponseDetails
屬性
-
錯誤
DOMExceptionDetails optional
遠端要求產生的
DOMException
(如果有的話)。 -
requestId
數字
CreateRequest
的requestId
。 -
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
屬性
-
錯誤
DOMExceptionDetails optional
遠端要求產生的
DOMException
(如果有的話)。 -
requestId
數字
CreateRequest
的requestId
。 -
responseJson
string optional
遠端要求產生的
PublicKeyCredential
(如有),透過呼叫 href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> 序列化為 JSON 字串PublicKeyCredential.toJSON()
。
IsUvpaaRequest
屬性
-
requestId
數字
要求的不透明 ID。
IsUvpaaResponseDetails
屬性
-
isUvpaa
布林值
-
requestId
數字
方法
attach()
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()
chrome.webAuthenticationProxy.completeCreateRequest(
details: CreateResponseDetails,
callback?: function,
)
回報 navigator.credentials.create()
呼叫的結果。除非要求已取消 (在這種情況下會觸發 onRequestCanceled
事件),否則擴充功能必須針對每個收到的 onCreateRequest
事件呼叫此函式。
參數
-
回呼
函式 選用
callback
參數如下所示:() => void
傳回
-
承諾<void>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
completeGetRequest()
chrome.webAuthenticationProxy.completeGetRequest(
details: GetResponseDetails,
callback?: function,
)
回報 navigator.credentials.get()
呼叫的結果。除非要求已取消 (在這種情況下會觸發 onRequestCanceled
事件),否則擴充功能必須針對每個收到的 onGetRequest
事件呼叫此函式。
參數
-
詳細資料
-
回呼
函式 選用
callback
參數如下所示:() => void
傳回
-
承諾<void>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
completeIsUvpaaRequest()
chrome.webAuthenticationProxy.completeIsUvpaaRequest(
details: IsUvpaaResponseDetails,
callback?: function,
)
回報 PublicKeyCredential.isUserVerifyingPlatformAuthenticator()
呼叫的結果。擴充功能必須針對每個收到的 onIsUvpaaRequest
事件呼叫此函式。
參數
-
回呼
函式 選用
callback
參數如下所示:() => void
傳回
-
承諾<void>
Promise 適用於 Manifest V3 及以上版本,但系統會為 回溯相容性您無法在同一函式呼叫中同時使用兩者。 保證會以傳遞至回呼的相同類型來解析。
detach()
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()
。
參數
-
回呼
函式
callback
參數如下所示:(requestInfo: CreateRequest) => void
-
requestInfo
-
onGetRequest
chrome.webAuthenticationProxy.onGetRequest.addListener(
callback: function,
)
發生 WebAuthn navigator.credentials.get() 呼叫時觸發。擴充功能必須提供回應,方法是從 requestInfo
使用 requestId
呼叫 completeGetRequest()
參數
-
回呼
函式
callback
參數如下所示:(requestInfo: GetRequest) => void
-
requestInfo
-
onIsUvpaaRequest
chrome.webAuthenticationProxy.onIsUvpaaRequest.addListener(
callback: function,
)
發生 PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
呼叫時觸發。擴充功能必須提供回應,方法是從 requestInfo
使用 requestId
呼叫 completeIsUvpaaRequest()
參數
-
回呼
函式
callback
參數如下所示:(requestInfo: IsUvpaaRequest) => void
-
requestInfo
-
onRemoteSessionStateChange
chrome.webAuthenticationProxy.onRemoteSessionStateChange.addListener(
callback: function,
)
在預設使用者資料目錄內,名稱與擴充功能 ID 相同的檔案寫入與此擴充功能相關聯的原生應用程式,可能會觸發這個事件。WebAuthenticationProxyRemoteSessionStateChange
檔案內容不可空白。亦即,不需要變更檔案內容就能觸發此事件。
原生主機應用程式可能會在擴充功能 Service Worker 已暫停時,使用這個事件機制指出可能發生的遠端工作階段狀態變更 (例如從卸離至已連接的遠端工作階段狀態,反之亦然)。在這個事件的處理常式中,擴充功能可據此呼叫 attach()
或 detach()
API 方法。
您必須在載入時同步註冊事件監聽器。
參數
-
回呼
函式
callback
參數如下所示:() => void
onRequestCanceled
chrome.webAuthenticationProxy.onRequestCanceled.addListener(
callback: function,
)
當 onCreateRequest
或 onGetRequest
事件遭到取消時 (因為呼叫端取消 WebAuthn 要求或逾時),就會觸發。收到此事件時,擴充功能應在用戶端取消處理作業,取消後,擴充功能就無法完成要求。
參數
-
回呼
函式
callback
參數如下所示:(requestId: number) => void
-
requestId
數字
-