Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (4)
  • Windows просит USB-ключ, а мне нужен PIN. Как включить проверку пароля/PIN в Windows Hello?

    @maxonklakson
    Чтобы navigator.credentials.get использовал встроенный Windows Hello, у тебя должен быть:
    credential, зарегистрированный через Windows Hello, то есть:
    authenticatorAttachment: "platform" при создании (navigator.credentials.create)
    user verification включён (например, PIN)
    Иначе Windows будет звать последний известный способ — в твоем случае внешний ключ.
    Что тебе нужно сделать
    Заново зарегистрировать credential через navigator.credentials.create(), указав authenticatorAttachment: "platform":
    const publicKey = {
      challenge: new Uint8Array(32),
      rp: { name: "Example Corp" },
      user: {
        id: new Uint8Array(16),
        name: "user@example.com",
        displayName: "User"
      },
      pubKeyCredParams: [{ alg: -7, type: "public-key" }],
      authenticatorSelection: {
        authenticatorAttachment: "platform",
        userVerification: "required",
        residentKey: "required"
      },
      timeout: 60000,
      attestation: "none"
    };
    
    const cred = await navigator.credentials.create({ publicKey });
    console.log(cred);

    Сохрани credentialId из полученного cred.rawId (в base64url).
    При логине (через navigator.credentials.get) передавай этот ID.
    Ответ написан
    Комментировать