از ایجاد یک رمز عبور جدید در صورت وجود آن جلوگیری کنید

برای جلوگیری از ایجاد کلید عبور جدید در صورتی که از قبل در همان ارائه دهنده کلید عبور وجود داشته باشد، از ویژگی اختیاری 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 بیشتر بیاموزید