102 lines
4.5 KiB
Plaintext
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> |