برای جلوگیری از ایجاد کلید عبور جدید در صورتی که از قبل در همان ارائه دهنده کلید عبور وجود داشته باشد، از ویژگی اختیاری excludeCredentials
فرهنگ لغت PublicKeyCredentialCreationOptions
WebAuthn استفاده کنید.
ویژگی excludeCredentials
آرایه ای از توصیفگرها برای کلیدهای عمومی است که از قبل برای یک کاربر مشخص وجود دارد. این اطلاعات زمانی توسط سرور طرف متکی ارائه می شود که بخواهد از ایجاد اعتبارنامه های جدید برای یک کاربر موجود در یک احراز هویت منفرد جلوگیری کند.
آرایه excludeCredentials
دارای ویژگی های زیر است:
- type : رشته ای که نوع اعتبار کلید عمومی را که باید تولید شود را توصیف می کند. مقدار پیش فرض "
public-key
" است. - id : یک
ArrayBuffer
که با شناسه اعتبار کلید عمومی موجود (PublicKeyCredential.rawId
) مطابقت دارد. این شناسه در طول ایجاد نمونهPublicKeyCredential
ایجاد می شود.
در صورتی که کاربر بخواهد اعتبار جدیدی را بر روی یک authenticator پلتفرم ایجاد کند که قبلاً حاوی یکی از اعتبارنامه های فهرست شده در این پارامتر است، کلاینت یک خطا برمی گرداند. اگر احراز هویت از قبل دارای یک اعتبار کلید عمومی از این نوع باشد، احراز هویت طبق معمول رضایت کاربر را جمعآوری میکند و یک نشانگر موفقیت بدون ایجاد اعتبار جدید به کاربر نشان میدهد. یک استثناء InvalidStateError
پرتاب میشود، که نشان میدهد کاربر قبلاً یک اعتبار معتبر مطابق با excludeCredentials
دارد.
"excludeCredentials": [
{"id": "<id-1>", "type": "public-key"},
{"id": "<id-2>", "type": "public-key"}
]
از این JSON می توان برای جلوگیری از ثبت بیش از یک بار احراز هویت با یکی از اعتبارنامه های ارائه شده استفاده کرد. هر مقدار " <id-*>
" باید با شناسه اعتباری که باید حذف شود پر شود.
درباره excludeCredentials
در توصیه W3C بیشتر بیاموزید