Mencegah pembuatan kunci sandi baru jika sudah ada

Untuk mencegah pembuatan kunci sandi baru jika sudah ada kunci sandi yang sama penyedia, gunakan properti excludeCredentials opsional dari WebAuthn PublicKeyCredentialCreationOptions kata kunci.

Properti excludeCredentials adalah array deskripsi untuk kunci publik yang sudah ada untuk pengguna tertentu. Informasi ini disediakan oleh server pihak tepercaya saat sistem tersebut ingin mencegah pembuatan kredensial baru untuk pengguna yang ada di satu otentikator.

Array excludeCredentials memiliki atribut berikut:

  • type: String yang menjelaskan jenis kredensial kunci publik yang akan dibuat. Nilai defaultnya adalah "public-key".
  • id: ArrayBuffer yang cocok dengan kredensial kunci publik yang sudah ada ID (PublicKeyCredential.rawId). ID ini dibuat selama pembuatan instance PublicKeyCredential.

Klien menampilkan error jika pengguna mencoba membuat kredensial baru pada otentikator platform yang sudah berisi salah satu yang tercantum dalam parameter ini. Jika otentikator sudah berisi jenis ini, otentikator mengumpulkan izin pengguna sebagai seperti biasa, dan menunjukkan kepada pengguna indikator keberhasilan tanpa kredensial baru yang dibuat. Channel Pengecualian InvalidStateError ditampilkan, yang menunjukkan bahwa pengguna sudah memiliki kredensial valid yang cocok dari excludeCredentials.

"excludeCredentials": [
    {"id": "<id-1>", "type": "public-key"},
    {"id": "<id-2>", "type": "public-key"}
  ]

JSON ini dapat digunakan untuk mencegah otentikator dengan salah satu kredensial agar tidak terdaftar lebih dari sekali. Setiap "<id-*>" nilai seharusnya diisi dengan ID kredensial yang akan dikecualikan.

Pelajari lebih lanjut excludeCredentials di W3C rekomendasi