browser.webAuthenticationProxy

شرح

chrome.webAuthenticationProxy API به نرم‌افزار میزکار از دور که روی میزبان از دور اجرا می‌شود اجازه می‌دهد درخواست‌های Web Authentication API (WebAuthn)‎ را رهگیری کند تا بتواند آن‌ها را در کارخواه محلی مدیریت کند.

اجازه‌ها

webAuthenticationProxy

دردسترس بودن

Chrome 115+ browser.* از Chrome 148 MV3+

انواع

CreateRequest

مشخصات

  • requestDetailsJson

    رشته

    PublicKeyCredentialCreationOptions به navigator.credentials.create() منتقل شد، به‌صورت رشته JSON سریال‌سازی شد. قالب سریال‌سازی با PublicKeyCredential.parseCreationOptionsFromJSON() سازگار است.

  • requestId

    شماره

    شناسه مبهم برای درخواست.

CreateResponseDetails

مشخصات

  • خطا

    DOMExceptionDetails اختیاری

    DOMException حاصل از درخواست از راه دور، درصورت وجود.

  • requestId

    شماره

    requestId از CreateRequest.

  • responseJson

    رشته اختیاری

    PublicKeyCredential، که درصورت وجود، توسط درخواست ازراه‌دور ارائه شده است، با فراخوانی href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() به‌صورت رشته JSON سریال‌سازی شده است.

DOMExceptionDetails

مشخصات

  • پیام

    رشته

  • نام

    رشته

GetRequest

مشخصات

  • requestDetailsJson

    رشته

    PublicKeyCredentialRequestOptions به navigator.credentials.get() منتقل شد، به‌صورت رشته JSON سریال‌سازی شد. قالب سریال‌سازی با PublicKeyCredential.parseRequestOptionsFromJSON() سازگار است.

  • requestId

    شماره

    شناسه مبهم برای درخواست.

GetResponseDetails

مشخصات

  • خطا

    DOMExceptionDetails اختیاری

    DOMException حاصل از درخواست از راه دور، درصورت وجود.

  • requestId

    شماره

    requestId از CreateRequest.

  • responseJson

    رشته اختیاری

    PublicKeyCredential، که درصورت وجود، توسط درخواست ازراه‌دور ارائه شده است، با فراخوانی href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() به‌صورت رشته JSON سریال‌سازی شده است.

IsUvpaaRequest

مشخصات

  • requestId

    شماره

    شناسه مبهم برای درخواست.

IsUvpaaResponseDetails

مشخصات

  • isUvpaa

    بولی

  • requestId

    شماره

روش‌ها

attach()

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

این افزونه را به پراکسی درخواست میانای برنامه‌سازی کاربردی «اصالت‌سنجی وب» فعال تبدیل می‌کند.

افزونه‌های میزکار ازراه‌دور معمولاً این روش را پس‌از شناسایی پیوست جلسه ازراه‌دور به این میزبان فراخوانی می‌کنند. وقتی این روش بدون خطا برگردد، پردازش عادی درخواست‌های WebAuthn به‌حالت تعلیق درمی‌آید و رویدادهای این API افزونه مطرح می‌شود.

اگر افزونه دیگری ازقبل پیوست شده باشد، این روش با خطا مواجه می‌شود.

افزونه پیوست‌شده باید پس‌از پایان جلسه میز کار ازراه‌دور، detach() را فراخوانی کند تا پردازش درخواست WebAuthn معمولی ازسر گرفته شود. اگر افزونه‌ها بار نشده باشند، به‌طور خودکار جدا می‌شوند.

برای نشان دادن تغییر پیوست جلسه از دور از برنامه بومی به افزونه (احتمالاً تعلیق‌شده)، به رویداد onRemoteSessionStateChange مراجعه کنید.

بازگشتی‌ها

  • Promise<string | undefined>

completeCreateRequest()

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

نتیجه تماس navigator.credentials.create() را گزارش می‌کند. افزونه باید این را برای هر رویداد onCreateRequest که دریافت کرده است فراخوانی کند، مگراینکه درخواست لغو شده باشد (که در این صورت، رویداد onRequestCanceled اجرا می‌شود).

پارامترها

بازگشتی‌ها

  • Promise<void>

completeGetRequest()

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

نتیجه تماس navigator.credentials.get() را گزارش می‌کند. افزونه باید این را برای هر رویداد onGetRequest که دریافت کرده است فراخوانی کند، مگراینکه درخواست لغو شده باشد (که در این صورت، رویداد onRequestCanceled اجرا می‌شود).

پارامترها

بازگشتی‌ها

  • Promise<void>

completeIsUvpaaRequest()

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

نتیجه تماس PublicKeyCredential.isUserVerifyingPlatformAuthenticator() را گزارش می‌کند. افزونه باید این را برای هر رویداد onIsUvpaaRequest که دریافت کرده است فراخوانی کند.

پارامترها

بازگشتی‌ها

  • Promise<void>

detach()

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

این افزونه را از پروکسی درخواست Web Authentication API فعال برمی‌دارد.

این روش معمولاً زمانی فراخوانی می‌شود که افزونه تشخیص دهد جلسه میزکار ازراه‌دور پایان یافته است. وقتی این روش برگردد، افزونه دیگر به‌عنوان پراکسی درخواست Web Authentication API فعال نخواهد بود.

برای نشان دادن تغییر پیوست جلسه از دور از برنامه بومی به افزونه (احتمالاً تعلیق‌شده)، به رویداد onRemoteSessionStateChange مراجعه کنید.

بازگشتی‌ها

  • Promise<string | undefined>

رویدادها

onCreateRequest

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

وقتی تماس WebAuthn navigator.credentials.create() برقرار می‌شود، فعال می‌شود. افزونه باید با فراخوانی completeCreateRequest() با requestId از requestInfo پاسخی ارائه دهد.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (requestInfo: CreateRequest) => void

onGetRequest

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

وقتی فراخوانی WebAuthn navigator.credentials.get()‎ رخ می‌دهد، فعال می‌شود. افزونه باید با فراخوانی completeGetRequest() با requestId از requestInfo پاسخی ارائه دهد

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

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

وقتی تماس PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() برقرار می‌شود، فعال می‌شود. افزونه باید با فراخوانی completeIsUvpaaRequest() با requestId از requestInfo پاسخی ارائه دهد

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (requestInfo: IsUvpaaRequest) => void

onRemoteSessionStateChange

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

برنامه بومی مرتبط با این افزونه می‌تواند با نوشتن در فایلی با نامی برابر با شناسه افزونه در دایرکتوری‌ای با نام WebAuthenticationProxyRemoteSessionStateChange در دایرکتوری داده‌های کاربر پیش‌فرض باعث راه‌اندازی این رویداد شود

محتوای فایل باید خالی باشد. یعنی برای راه‌اندازی این رویداد، لازم نیست محتوای فایل تغییر کند.

برنامه میزبان بومی ممکن است از این سازوکار رویداد برای نشان دادن تغییر احتمالی وضعیت جلسه ازراه‌دور (یعنی از جداشده به متصل‌شده یا برعکس) استفاده کند، درحالی‌که کارگر سرویس افزونه احتمالاً معلق است. در گرداننده این رویداد، افزونه می‌تواند روش‌های میانای برنامه‌سازی کاربردی attach() یا detach() را به‌طور مقتضی فراخوانی کند.

شنونده رویداد باید به‌طور هم‌زمان در زمان بارگیری ثبت شود.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    () => void

onRequestCanceled

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

وقتی رویداد onCreateRequest یا onGetRequest لغو شود (به‌دلیل اینکه درخواست WebAuthn توسط تماس‌گیرنده لغو شده است یا به‌دلیل اینکه مهلت آن به‌پایان رسیده است) فعال می‌شود. وقتی این رویداد دریافت می‌شود، افزونه باید پردازش درخواست مربوطه را در سمت کارخواه لغو کند. افزونه‌ها نمی‌توانند درخواستی را که لغو شده است تکمیل کنند.

پارامترها

  • تماس برگشتی

    عملکرد

    پارامتر callback به‌صورت زیر است:

    (requestId: number) => void

    • requestId

      شماره