Client with UI

This commit is contained in:
dqj
2026-01-17 18:29:04 +09:00
parent 44a35fb45a
commit db2b608606
7 changed files with 2705 additions and 5 deletions

View File

@@ -78,6 +78,9 @@ async function listUserDevicesFido2(rpId = null) {
const resp = await response.json();
if ('ok' === resp.status && resp.session === session_data.session) {
return {status:'ok', devices:resp.devices}
} else if (resp.errorMessage && resp.errorMessage.includes('No user session')) {
sessionStorage.removeItem(DFIDO2_LIB_LOCALSTG_NAME_USER_SESSION);
return {status:'ok', devices:[]}
} else {
return {status:'failed', errorMessage: resp.errorMessage}
}
@@ -374,8 +377,8 @@ function makePublicKey(attOptsResp) {
rp: attOptsResp.rp,
user: {
id: _stringToArrayBuffer(attOptsResp.user.id), //_base64ToArrayBuffer(_fromBase64URL(attOptsResp.user.id)),
name: attOptsResp.user.name,
displayName: attOptsResp.user.displayName,
name: attOptsResp.user.name || attOptsResp.user.id || 'user',
displayName: attOptsResp.user.displayName || attOptsResp.user.name || attOptsResp.user.id || 'User',
},
pubKeyCredParams: attOptsResp.pubKeyCredParams,
timeout: attOptsResp.timeout,
@@ -387,6 +390,10 @@ function makePublicKey(attOptsResp) {
async function doAttestation(username, displayName, rpId, userVerification = 'preferred') {
var process_time_limit = Number.MAX_SAFE_INTEGER
if (window._fido2_pending_request) {
return {status:'failed', errorMessage: 'Fido2LibErr106:A request is already pending'};
}
window._fido2_pending_request = true;
try {
const attestationOptions = {
username: username,
@@ -472,13 +479,19 @@ async function doAttestation(username, displayName, rpId, userVerification = 'pr
errRtn.errCode = fido2LibErrCodes.user_canceled
}
}else errRtn.errCode = fido2LibErrCodes.unknown
return errRtn;
} finally {
window._fido2_pending_request = false;
}
}
async function doAssertion(username = null, rpId = null, userVerification = 'preferred') {
var process_time_limit = Number.MAX_SAFE_INTEGER
if (window._fido2_pending_request) {
return {status:'failed', errorMessage: 'Fido2LibErr106:A request is already pending'};
}
window._fido2_pending_request = true;
try {
let authnOptions;
/*
@@ -584,8 +597,10 @@ async function doAssertion(username = null, rpId = null, userVerification = 'pre
errRtn.errCode = fido2LibErrCodes.user_canceled
}
}else errRtn.errCode = fido2LibErrCodes.unknown
return errRtn;
} finally {
window._fido2_pending_request = false;
}
}