Latihan 1 dari materi Passwordless & Passkeys di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Implementasikan tiga function yang merepresentasikan mekanisme inti WebAuthn/Passkey.
1. createChallenge(userId, operation)
Server membuat challenge untuk dikirim ke client. operation adalah "register" atau "authenticate". Kembalikan:
challenge: "ch_" + userId + "_" + operationuserId, expiresIn: 60type: "webauthn.create" jika register, "webauthn.get" jika authenticate2. isValidPublicKey(publicKey)
Public key valid jika: string, panjang minimal 10 karakter, dan dimulai dengan "pk_". Return true atau false.
3. matchCredential(credentialId, allowedCredentials)
allowedCredentials adalah array { id, type }. Cari credential dengan id === credentialId dan type === "public-key". Return credential yang cocok, atau null jika tidak ditemukan.