Zablokuj możliwość tworzenia nowego klucza dostępu, jeśli taki istnieje

Aby zapobiec tworzeniu nowego klucza dostępu, jeśli istnieje już ten sam klucz dostępu dostawcy, użyj opcjonalnej właściwości excludeCredentials protokołu WebAuthn PublicKeyCredentialCreationOptions. słownik.

Właściwość excludeCredentials to tablica deskryptorów kluczy publicznych które już istnieją dla danego użytkownika. Informacje te są dostarczane przez serwer strony zależnej gdy chce zapobiec tworzeniu nowych danych logowania dla istniejącego użytkownika za pomocą jednego mechanizmu uwierzytelniającego.

Tablica excludeCredentials ma te atrybuty:

  • type: ciąg tekstowy opisujący typ danych logowania za pomocą klucza publicznego, które mają zostać . Wartość domyślna to „public-key”.
  • id: wartość ArrayBuffer pasująca do istniejących danych uwierzytelniających klucza publicznego (PublicKeyCredential.rawId). Ten identyfikator jest generowany podczas przez utworzenie instancji PublicKeyCredential.

Klient zwraca błąd, jeśli użytkownik próbuje utworzyć nowe dane logowania w mechanizmie uwierzytelniania platformy, który zawiera już jeden z dane logowania wymienione w tym parametrze. Jeśli w module uwierzytelniającym znajduje się już parametr danych logowania za pomocą klucza publicznego, mechanizm uwierzytelniający zbiera zgodę użytkownika, zwykle i wyświetla użytkownikowi wskaźnik powodzenia bez tworzenia nowych danych logowania. An Zgłoszono wyjątek InvalidStateError, który wskazuje, że użytkownik ma już prawidłowe dane logowania dopasowane z adresu excludeCredentials.

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

Plik JSON może być używany do zapobiegania uwierzytelnianiem z użyciem jednego z podanych dane logowania przed przystąpieniem do ponownej rejestracji. Każda „<id-*>” wartość powinna zostanie wypełnione identyfikatorem certyfikatu do wykluczenia.

Więcej informacji o excludeCredentials znajdziesz w W3C rekomendacja