Files
sample-site/top.html.noused
2025-10-06 21:22:13 +09:00

102 lines
4.5 KiB
Plaintext

<html>
<head>
<meta charset="UTF-8">
<title>A sample site for FIOD2-Note server integration</title>
<script src="jquery.js"></script>
<script src="files/dfido2-lib.js?v=2023040205"></script>
<script>
//for debug
//alert(getI18NErrorMessage("SvrErr107:No ID field in the body of /attestation/result test", errMsgLanguages.japanese))
async function register() {
var uid = $('#uid').val();
if (!uid || 0 == uid.length) {
alert('User Idを入力してください(Please input User Id).');
return
}
var udis = $('#udis').val();
if (!udis || 0 == udis.length) {
alert('表示名を入力してください(Please input User display).');
return
}
const result = await registerFido2(uid, udis);
if(result.status === 'ok'){
alert('デバイス登録完了。(device registered)');
}else{
errProcessReg(result)
}
}
async function authenticateWithUid() {
var uid = $('#uid').val();
if (!uid || 0 == uid.length) {
alert('User Idを入力してください(Please input User Id.');
return
}
const result = await authenticateFido2(uid);
if(result.status === 'ok'){
alert('認証成功。(Authenticated)');
}else{
errProcessAuth(result)
}
}
async function authenticate() {
const result = await authenticateFido2();
if(result.status === 'ok'){
alert('認証成功。(Authenticated)' + (result.username?' User:'+result.username:''));
}else{
errProcessAuth(result)
}
}
function errProcessAuth(result){
if(result.errorMessage){
if(result.name && 'NotAllowedError' === result.name){
alert('ユーザーがキャンセルしたか、プロセスがタイムアウトしました。\n(The user canceled, or the process timeout.).');
}else if(result.errorMessage.startsWith('SvrErr104:')){
alert('このデバイスを登録していません、登録してください。\n(You have not registered this device, please register it.).');
}else{
const msg = getI18NErrorMessage(result.errorMessage, errMsgLanguages.japanese);
alert(msg?msg:result.errorMessage);
}
}else{
alert('システムエラー(System error).');
}
}
function errProcessReg(result){
if(result.errCode){
switch (result.errCode){
case fido2LibErrCodes.user_canceled:
alert('ユーザーがキャンセルしました。(the user canceled)');
break;
case fido2LibErrCodes.timeout:
alert('プロセスがタイムアウトしました。(the process timeout)');
break;
default:
alert(result.errorMessage?result.errorMessage:'システムエラー(System error).');
}
}else if(result.errorMessage){
const msg = getI18NErrorMessage(result.errorMessage, fido2LibErrMsgLanguages.japanese);
alert(msg?msg:result.errorMessage);
}else{
alert('システムエラー(System error).');
}
}
</script>
</head>
<body>
<br><br>
<h4>User Id: <input id='uid' name='uid'></h4>
<h4>表示名(User display): <input id='udis' name='udis'></h4>
<button onclick="register();" style="font-size:large">FIDO2デバイス登録(register FIDO2)</button><br><br>
<button onclick="authenticate();" style="font-size:large">UserId自動発見認証(authenticate discovery)</button><br><br>
<button onclick="authenticateWithUid();" style="font-size:large">UserId指定認証(authenticate)</button>
</body>
</html>