Compare commits
2 Commits
main
...
feature/RE
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4bd3ca0e2b | ||
|
|
9218662a4b |
@@ -54,8 +54,8 @@
|
|||||||
|
|
||||||
<script src="files/ua-parser.js"></script>
|
<script src="files/ua-parser.js"></script>
|
||||||
|
|
||||||
<script src="files/amipro_utils.js?v=20230401402"></script>
|
<script src="files/amipro_utils.js?v=20260118"></script>
|
||||||
<script src="files/dfido2-lib.js?v=20230918"></script>
|
<script src="files/dfido2-lib.js?v=20260118"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,3 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
* @file dfido2-lib.js
|
|
||||||
* @description FIDO2 library of amipro FIDO2 Server
|
|
||||||
* @version 2025-12-12
|
|
||||||
* @author Amipro Co., Ltd. (https://www.amipro.me/)
|
|
||||||
* @license Copyright (c) Amipro Co., Ltd. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const DFIDO2_LIB_LOCALSTG_NAME_USER_SESSION = 'fido2_user_session'
|
const DFIDO2_LIB_LOCALSTG_NAME_USER_SESSION = 'fido2_user_session'
|
||||||
const DFIDO2_LIB_LOCALSTG_NAME_REGISTERED = 'dfido2_lib_registered'
|
const DFIDO2_LIB_LOCALSTG_NAME_REGISTERED = 'dfido2_lib_registered'
|
||||||
const DFIDO2_LIB_LOCALSTG_NAME_SVR_URL = 'dfido2_lib_svr_url'
|
const DFIDO2_LIB_LOCALSTG_NAME_SVR_URL = 'dfido2_lib_svr_url'
|
||||||
@@ -250,64 +241,16 @@ function errMessageFido2(result){
|
|||||||
case fido2LibErrCodes.timeout:
|
case fido2LibErrCodes.timeout:
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr103:');
|
rtn=getI18NErrorMessage('Fido2LibErr103:');
|
||||||
break;
|
break;
|
||||||
case fido2LibErrCodes.invalid_state:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr105:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.not_allowed:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr107:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.abort:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr108:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.not_supported:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr109:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.security:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr110:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.network:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr111:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.constraint:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr112:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.not_readable:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr113:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.encoding:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr114:');
|
|
||||||
break;
|
|
||||||
case fido2LibErrCodes.data_error:
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr115:');
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
rtn=result.errorMessage?result.errorMessage:getI18NErrorMessage('Fido2LibErr104:');
|
rtn=result.errorMessage?result.errorMessage:getI18NErrorMessage('Fido2LibErr104:');
|
||||||
}
|
}
|
||||||
}else if(result.name && "InvalidStateError" === result.name){
|
}else if(result.name && "InvalidStateError" === result.name){
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr105:');
|
rtn=getI18NErrorMessage('Fido2LibErr105:');
|
||||||
}else if(result.name && "NotAllowedError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr107:');
|
|
||||||
}else if(result.name && "AbortError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr108:');
|
|
||||||
}else if(result.name && "NotSupportedError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr109:');
|
|
||||||
}else if(result.name && "SecurityError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr110:');
|
|
||||||
}else if(result.name && "NetworkError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr111:');
|
|
||||||
}else if(result.name && "ConstraintError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr112:');
|
|
||||||
}else if(result.name && "NotReadableError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr113:');
|
|
||||||
}else if(result.name && "EncodingError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr114:');
|
|
||||||
}else if(result.name && "DataError" === result.name){
|
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr115:');
|
|
||||||
}else if(result.errorMessage){
|
}else if(result.errorMessage){
|
||||||
const msg = getI18NErrorMessage(result.errorMessage);
|
const msg = getI18NErrorMessage(result.errorMessage);
|
||||||
rtn=msg?msg:result.errorMessage;
|
rtn=msg?msg:result.errorMessage;
|
||||||
}else{
|
}else{
|
||||||
rtn=getI18NErrorMessage('Fido2LibErr104:');
|
rtn=getI18NErrorMessage(i18n_messages, 'Fido2LibErr104:');
|
||||||
}
|
}
|
||||||
|
|
||||||
return rtn;
|
return rtn;
|
||||||
@@ -316,17 +259,7 @@ function errMessageFido2(result){
|
|||||||
const fido2LibErrCodes = {
|
const fido2LibErrCodes = {
|
||||||
user_canceled : -101,
|
user_canceled : -101,
|
||||||
timeout : -102,
|
timeout : -102,
|
||||||
unknown : -999,
|
unknown : -999
|
||||||
invalid_state : -103,
|
|
||||||
not_allowed : -104,
|
|
||||||
abort : -105,
|
|
||||||
not_supported : -106,
|
|
||||||
security : -107,
|
|
||||||
network : -108,
|
|
||||||
constraint : -109,
|
|
||||||
not_readable : -110,
|
|
||||||
encoding : -111,
|
|
||||||
data_error : -112
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const errMsgs = new Map();
|
const errMsgs = new Map();
|
||||||
@@ -356,23 +289,11 @@ errMsgs.get(fido2LibErrMsgLanguages.english).set('SvrErr118:', 'Signature is not
|
|||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('SvrErr119:', 'No user session!');
|
errMsgs.get(fido2LibErrMsgLanguages.english).set('SvrErr119:', 'No user session!');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('SvrErr120:', 'User has reached the device limit!');
|
errMsgs.get(fido2LibErrMsgLanguages.english).set('SvrErr120:', 'User has reached the device limit!');
|
||||||
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr101:', 'Your browser does not support FIDO2/WebAuthn.');
|
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr101:', 'Your browser does not support FIDO2.');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr102:', 'The operation was canceled by the user.');
|
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr102:', 'The user canceled.');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr103:', 'The operation timed out.');
|
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr103:', 'The process timeout.');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr104:', 'A system error occurred.');
|
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr104:', 'System error.');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr105:', 'The authenticator contains credentials that are already registered with this website.');
|
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr105:', 'The same authenticator cannot be registered again.');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr106:', 'Another request is already in progress.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr107:', 'The operation was not allowed.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr108:', 'The operation was aborted.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr109:', 'This operation is not supported on your device.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr110:', 'A security error occurred.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr111:', 'A network error occurred.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr112:', 'The operation failed due to a constraint violation.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr113:', 'Could not read the credential.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr114:', 'The data format is invalid.');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr115:', 'A data error occurred.');
|
|
||||||
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.english).set('Fido2LibErr106:', 'Another request is already in progress.');
|
|
||||||
|
|
||||||
errMsgs.set(fido2LibErrMsgLanguages.japanese, new Map());
|
errMsgs.set(fido2LibErrMsgLanguages.japanese, new Map());
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('SvrErr101:', '登録されていないエンタープライズ認証デバイス aaguid!');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('SvrErr101:', '登録されていないエンタープライズ認証デバイス aaguid!');
|
||||||
@@ -394,23 +315,11 @@ errMsgs.get(fido2LibErrMsgLanguages.japanese).set('SvrErr118:', '署名は base6
|
|||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('SvrErr119:', 'ユーザーセッションがありません!');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('SvrErr119:', 'ユーザーセッションがありません!');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('SvrErr120:', 'ユーザーはデバイスの制限数に達しました!');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('SvrErr120:', 'ユーザーはデバイスの制限数に達しました!');
|
||||||
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr101:', 'お使いのブラウザは FIDO2/WebAuthn をサポートしていません。');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr101:', 'お使いのブラウザは FIDO2 をサポートしていません。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr102:', 'ユーザーによって操作がキャンセルされました。');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr102:', 'ユーザーがキャンセルしました。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr103:', '操作がタイムアウトしました。');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr103:', 'プロセスがタイムアウトしました。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr104:', 'システムエラーが発生しました。');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr104:', 'システムエラー。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr105:', 'この認証デバイスには、すでにこの网站に登録されている憑拠が含まれています。');
|
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr105:', '同じ認証デバイスを再登録することはできません。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr106:', '別のリクエストがすでに進行中です。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr107:', '操作が許可されませんでした。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr108:', '操作が中止されました。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr109:', 'この機器ではこの操作はサポートされていません。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr110:', 'セキュリティエラーが発生しました。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr111:', 'ネットワークエラーが発生しました。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr112:', '制約違反のため操作に失敗しました。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr113:', '憑拠を読み取れませんでした。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr114:', 'データ形式が無効です。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr115:', 'データエラーが発生しました。');
|
|
||||||
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.japanese).set('Fido2LibErr106:', '別のリクエストがすでに進行中です。');
|
|
||||||
|
|
||||||
errMsgs.set(fido2LibErrMsgLanguages.chinese_cn, new Map());
|
errMsgs.set(fido2LibErrMsgLanguages.chinese_cn, new Map());
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('SvrErr101:', '未注册的企业认证器 aaguid!');
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('SvrErr101:', '未注册的企业认证器 aaguid!');
|
||||||
@@ -432,23 +341,11 @@ errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('SvrErr118:', '签名不是
|
|||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('SvrErr119:', '未建立用户会话!');
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('SvrErr119:', '未建立用户会话!');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('SvrErr120:', '用户已达到设备限制数!');
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('SvrErr120:', '用户已达到设备限制数!');
|
||||||
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr106:', '另一个请求正在进行中。');
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr101:', '您的浏览器不支持FIDO2.');
|
||||||
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr102:', '用户取消了操作。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr101:', '您的浏览器不支持FIDO2/WebAuthn。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr102:', '操作已被用户取消。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr103:', '操作超时。');
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr103:', '操作超时。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr104:', '发生系统错误。');
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr104:', '系统错误。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr105:', '您的认证器包含已在此网站注册的凭据。');
|
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr105:', '无法再次注册相同的认证器。');
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr106:', '另一个请求正在进行中。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr107:', '操作不被允许。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr108:', '操作已中止。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr109:', '您的设备不支持此操作。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr110:', '发生安全错误。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr111:', '发生网络错误。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr112:', '由于约束冲突,操作失败。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr113:', '无法读取凭据。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr114:', '数据格式无效。');
|
|
||||||
errMsgs.get(fido2LibErrMsgLanguages.chinese_cn).set('Fido2LibErr115:', '发生数据错误。');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -592,7 +489,6 @@ async function doAttestation(username, displayName, rpId, userVerification = 'pr
|
|||||||
} catch (err) {
|
} catch (err) {
|
||||||
var errRtn = {status:'failed', errorMessage: err.message};
|
var errRtn = {status:'failed', errorMessage: err.message};
|
||||||
if(err.name) errRtn.name = err.name
|
if(err.name) errRtn.name = err.name
|
||||||
|
|
||||||
if(err.name && 'NotAllowedError' === err.name){
|
if(err.name && 'NotAllowedError' === err.name){
|
||||||
const nowtm = (new Date()).getTime()
|
const nowtm = (new Date()).getTime()
|
||||||
if(nowtm > process_time_limit){
|
if(nowtm > process_time_limit){
|
||||||
@@ -600,27 +496,7 @@ async function doAttestation(username, displayName, rpId, userVerification = 'pr
|
|||||||
}else{
|
}else{
|
||||||
errRtn.errCode = fido2LibErrCodes.user_canceled
|
errRtn.errCode = fido2LibErrCodes.user_canceled
|
||||||
}
|
}
|
||||||
} else if(err.name && 'InvalidStateError' === err.name){
|
}else errRtn.errCode = fido2LibErrCodes.unknown
|
||||||
errRtn.errCode = fido2LibErrCodes.invalid_state
|
|
||||||
} else if(err.name && 'AbortError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.abort
|
|
||||||
} else if(err.name && 'NotSupportedError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.not_supported
|
|
||||||
} else if(err.name && 'SecurityError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.security
|
|
||||||
} else if(err.name && 'NetworkError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.network
|
|
||||||
} else if(err.name && 'ConstraintError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.constraint
|
|
||||||
} else if(err.name && 'NotReadableError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.not_readable
|
|
||||||
} else if(err.name && 'EncodingError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.encoding
|
|
||||||
} else if(err.name && 'DataError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.data_error
|
|
||||||
} else {
|
|
||||||
errRtn.errCode = fido2LibErrCodes.unknown
|
|
||||||
}
|
|
||||||
|
|
||||||
return errRtn;
|
return errRtn;
|
||||||
} finally {
|
} finally {
|
||||||
@@ -731,7 +607,6 @@ async function doAssertion(username = null, rpId = null, userVerification = 'pre
|
|||||||
} catch (err) {
|
} catch (err) {
|
||||||
var errRtn = {status:'failed', errorMessage: err.message};
|
var errRtn = {status:'failed', errorMessage: err.message};
|
||||||
if(err.name) errRtn.name = err.name
|
if(err.name) errRtn.name = err.name
|
||||||
|
|
||||||
if(err.name && 'NotAllowedError' === err.name){
|
if(err.name && 'NotAllowedError' === err.name){
|
||||||
const nowtm = (new Date()).getTime()
|
const nowtm = (new Date()).getTime()
|
||||||
if(nowtm > process_time_limit){
|
if(nowtm > process_time_limit){
|
||||||
@@ -739,27 +614,7 @@ async function doAssertion(username = null, rpId = null, userVerification = 'pre
|
|||||||
}else{
|
}else{
|
||||||
errRtn.errCode = fido2LibErrCodes.user_canceled
|
errRtn.errCode = fido2LibErrCodes.user_canceled
|
||||||
}
|
}
|
||||||
} else if(err.name && 'InvalidStateError' === err.name){
|
}else errRtn.errCode = fido2LibErrCodes.unknown
|
||||||
errRtn.errCode = fido2LibErrCodes.invalid_state
|
|
||||||
} else if(err.name && 'AbortError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.abort
|
|
||||||
} else if(err.name && 'NotSupportedError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.not_supported
|
|
||||||
} else if(err.name && 'SecurityError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.security
|
|
||||||
} else if(err.name && 'NetworkError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.network
|
|
||||||
} else if(err.name && 'ConstraintError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.constraint
|
|
||||||
} else if(err.name && 'NotReadableError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.not_readable
|
|
||||||
} else if(err.name && 'EncodingError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.encoding
|
|
||||||
} else if(err.name && 'DataError' === err.name){
|
|
||||||
errRtn.errCode = fido2LibErrCodes.data_error
|
|
||||||
} else {
|
|
||||||
errRtn.errCode = fido2LibErrCodes.unknown
|
|
||||||
}
|
|
||||||
|
|
||||||
return errRtn;
|
return errRtn;
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.fido2-sdk-logo {
|
.fido2-sdk-logo {
|
||||||
@@ -129,25 +128,6 @@
|
|||||||
.fido2-sdk-logo {
|
.fido2-sdk-logo {
|
||||||
max-height: 30px;
|
max-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fido2-sdk-status-badge {
|
|
||||||
width: 100%;
|
|
||||||
order: 3;
|
|
||||||
margin-top: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fido2-sdk-header .btn-close {
|
|
||||||
order: 2;
|
|
||||||
margin-left: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fido2-sdk-header .modal-title {
|
|
||||||
order: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fido2-sdk-header .fido2-sdk-logo {
|
|
||||||
order: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.fido2-sdk-loading {
|
.fido2-sdk-loading {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -53,15 +53,15 @@
|
|||||||
<script src="files/menu.js"></script>
|
<script src="files/menu.js"></script>
|
||||||
<script src="files/main.js"></script>
|
<script src="files/main.js"></script>
|
||||||
|
|
||||||
<script src="files/amipro_utils.js?v=20230414"></script>
|
<script src="files/amipro_utils.js?v=20260118"></script>
|
||||||
<script src="files/dfido2-lib.js?v=2025092701"></script>
|
<script src="files/dfido2-lib.js?v=20260118"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
<!--
|
<!--
|
||||||
// For stand alone: 'https://local.dqj-macpro.com'
|
// For stand alone: 'https://local.dqj-macpro.com'
|
||||||
// For proxy: set 'https://mac-air-m2.dqj-home.com'
|
// For proxy: set 'https://mac-air-m2.dqj-home.com'
|
||||||
-->
|
-->
|
||||||
setFidoServerURL('https://local.dqj-macpro.com');//'https://fido2.amipro.me');
|
setFidoServerURL('https://fido2.amipro.me'); //'https://local.dqj-macpro.com');
|
||||||
|
|
||||||
const i18n_messages = new Map();
|
const i18n_messages = new Map();
|
||||||
|
|
||||||
|
|||||||
@@ -213,9 +213,9 @@
|
|||||||
i18n_messages.set("msg_login_desc", lang_map);
|
i18n_messages.set("msg_login_desc", lang_map);
|
||||||
|
|
||||||
lang_map = new Map();
|
lang_map = new Map();
|
||||||
lang_map.set("en-US", "Login");
|
lang_map.set("en-US", "Passkey Login");
|
||||||
lang_map.set("zh-CN", "登录");
|
lang_map.set("zh-CN", "Passkey 登录");
|
||||||
lang_map.set("ja", "ログイン");
|
lang_map.set("ja", "パスキーログイン");
|
||||||
i18n_messages.set("msg_btn_passkey_login", lang_map);
|
i18n_messages.set("msg_btn_passkey_login", lang_map);
|
||||||
|
|
||||||
lang_map = new Map();
|
lang_map = new Map();
|
||||||
@@ -361,9 +361,10 @@
|
|||||||
lang_map.set("zh-CN", "事件回调系统");
|
lang_map.set("zh-CN", "事件回调系统");
|
||||||
lang_map.set("ja", "イベント コールバック システム");
|
lang_map.set("ja", "イベント コールバック システム");
|
||||||
i18n_messages.set("msg_feature_9", lang_map);
|
i18n_messages.set("msg_feature_9", lang_map);
|
||||||
lang_map.set("zh-CN", "主题色和样式定制");
|
lang_map.set("en-US", "Event callback system");
|
||||||
lang_map.set("ja", "テーマの色とスタイルのカスタマイズ");
|
lang_map.set("zh-CN", "事件回调系统");
|
||||||
i18n_messages.set("msg_feature_7", lang_map);
|
lang_map.set("ja", "イベント コールバック システム");
|
||||||
|
i18n_messages.set("msg_feature_9", lang_map);
|
||||||
|
|
||||||
lang_map = new Map();
|
lang_map = new Map();
|
||||||
lang_map.set("en-US", "Login Default");
|
lang_map.set("en-US", "Login Default");
|
||||||
@@ -371,51 +372,6 @@
|
|||||||
lang_map.set("ja", "ログイン デフォルト");
|
lang_map.set("ja", "ログイン デフォルト");
|
||||||
i18n_messages.set("msg_code_login_default", lang_map);
|
i18n_messages.set("msg_code_login_default", lang_map);
|
||||||
|
|
||||||
lang_map = new Map();
|
|
||||||
lang_map.set("en-US", "Login Custom");
|
|
||||||
lang_map.set("zh-CN", "登录定制");
|
|
||||||
lang_map.set("ja", "ログイン カスタム");
|
|
||||||
i18n_messages.set("msg_code_login_custom", lang_map);
|
|
||||||
|
|
||||||
lang_map = new Map();
|
|
||||||
lang_map.set("en-US", "Device Manager Default");
|
|
||||||
lang_map.set("zh-CN", "设备管理缺省");
|
|
||||||
lang_map.set("ja", "デバイス管理 デフォルト");
|
|
||||||
i18n_messages.set("msg_code_device_default", lang_map);
|
|
||||||
|
|
||||||
lang_map = new Map();
|
|
||||||
lang_map.set("en-US", "Device Manager Custom");
|
|
||||||
lang_map.set("zh-CN", "设备管理定制");
|
|
||||||
lang_map.set("ja", "デバイス管理 カスタム");
|
|
||||||
i18n_messages.set("msg_code_device_custom", lang_map);
|
|
||||||
|
|
||||||
lang_map = new Map();
|
|
||||||
lang_map.set("en-US", "JS Import Examples:");
|
|
||||||
lang_map.set("zh-CN", "JS 引入示例:");
|
|
||||||
lang_map.set("ja", "JS インポート例:");
|
|
||||||
i18n_messages.set("msg_js_import_examples", lang_map);
|
|
||||||
|
|
||||||
lang_map = new Map();
|
|
||||||
lang_map.set("en-US", "Multi-language support (English/Japanese/Chinese)");
|
|
||||||
lang_map.set("zh-CN", "多语言支持(英/日/中)");
|
|
||||||
lang_map.set("ja", "多言語対応(英/日/中)");
|
|
||||||
i18n_messages.set("msg_feature_8", lang_map);
|
|
||||||
|
|
||||||
lang_map = new Map();
|
|
||||||
lang_map.set("en-US", "Event callback system");
|
|
||||||
lang_map.set("zh-CN", "事件回调系统");
|
|
||||||
lang_map.set("ja", "イベント コールバック システム");
|
|
||||||
i18n_messages.set("msg_feature_9", lang_map);
|
|
||||||
lang_map.set("zh-CN", "多语言支持(英/日/中)");
|
|
||||||
lang_map.set("ja", "多言語対応(英/日/中)");
|
|
||||||
i18n_messages.set("msg_feature_8", lang_map);
|
|
||||||
|
|
||||||
lang_map = new Map();
|
|
||||||
lang_map.set("en-US", "Event callback system");
|
|
||||||
lang_map.set("zh-CN", "事件回调系统");
|
|
||||||
lang_map.set("ja", "イベント コールバック システム");
|
|
||||||
i18n_messages.set("msg_feature_9", lang_map);
|
|
||||||
|
|
||||||
lang_map = new Map();
|
lang_map = new Map();
|
||||||
lang_map.set("en-US", "📊 Event Log");
|
lang_map.set("en-US", "📊 Event Log");
|
||||||
lang_map.set("zh-CN", "📊 事件日志");
|
lang_map.set("zh-CN", "📊 事件日志");
|
||||||
@@ -482,6 +438,12 @@
|
|||||||
lang_map.set("ja", "エラーが発生しました");
|
lang_map.set("ja", "エラーが発生しました");
|
||||||
i18n_messages.set("msg_log_error", lang_map);
|
i18n_messages.set("msg_log_error", lang_map);
|
||||||
|
|
||||||
|
lang_map = new Map();
|
||||||
|
lang_map.set("en-US", "Password attempts exhausted");
|
||||||
|
lang_map.set("zh-CN", "密码尝试次数已用完");
|
||||||
|
lang_map.set("ja", "パスワード試行回数が上限に達しました");
|
||||||
|
i18n_messages.set("msg_password_exhausted", lang_map);
|
||||||
|
|
||||||
lang_map = new Map();
|
lang_map = new Map();
|
||||||
lang_map.set("en-US", "Device manager closed");
|
lang_map.set("en-US", "Device manager closed");
|
||||||
lang_map.set("zh-CN", "设备管理器已关闭");
|
lang_map.set("zh-CN", "设备管理器已关闭");
|
||||||
@@ -665,7 +627,7 @@ Fido2UIManager.renderDeviceManager({<br>
|
|||||||
<div id="device-container"></div>
|
<div id="device-container"></div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
const SERVER_URL = 'https://local.dqj-macpro.com';//'https://fido2.amipro.me';
|
const SERVER_URL = 'https://fido2.amipro.me'; //'https://local.dqj-macpro.com';
|
||||||
|
|
||||||
let currentUserId = null;
|
let currentUserId = null;
|
||||||
let isLoggedIn = false;
|
let isLoggedIn = false;
|
||||||
@@ -904,7 +866,7 @@ Fido2UIManager.renderDeviceManager({<br>
|
|||||||
const entry = document.createElement('div');
|
const entry = document.createElement('div');
|
||||||
entry.className = 'log-entry';
|
entry.className = 'log-entry';
|
||||||
|
|
||||||
const time = new Date().toLocaleTimeString('zh-CN');
|
const time = new Date().toLocaleTimeString(CURRENT_LANG);
|
||||||
const typeClass = 'log-type-' + type;
|
const typeClass = 'log-type-' + type;
|
||||||
|
|
||||||
entry.innerHTML = `<span class="log-time">[${time}]</span><span class="${typeClass}">[${type.toUpperCase()}]</span> ${message}`;
|
entry.innerHTML = `<span class="log-time">[${time}]</span><span class="${typeClass}">[${type.toUpperCase()}]</span> ${message}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user