Files
webauthn4j-tests/mds.html
2022-10-01 14:54:04 +08:00

102 lines
6.2 KiB
HTML

<!doctype html>
<html>
<head>
<title>MDS</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta data-n-head="ssr" data-hid="charset" charset="utf-8">
<link type="text/css" rel="stylesheet" href="https://cdn.hatter.ink/doc/4283_626D28BCCFB7822C3786C70E3755CD91/bootstrap-4.4.1.min.css" charset="utf-8" />
<link type="text/css" rel="stylesheet" href="https://cdn.hatter.ink/doc/4284_13AC4C5AD6B18339982F3001E0D638DB/bootstrap-vue.min.css" charset="utf-8" />
<style>
_body { padding: 1rem; }
[v-cloak] { display: none; }
</style>
<script src="https://cdn.hatter.ink/doc/4246_83266CF6043E93C9E7015A983035780A/vue-2.6.14.min.js" charset="utf-8"></script>
<script src="https://cdn.hatter.ink/doc/4285_580BA60182DAF3638D7A2F3A64B25195/bootstrap-vue.min.js" charset="utf-8"></script>
<script src="https://cdn.hatter.ink/doc/4286_307AE59BF7AB51966088EC6295F5AC58/bootstrap-vue-icons.min.js" charset="utf-8"></script>
<script src="https://cdn.hatter.ink/doc/4264_02DC607C0B9117DCE50F736A2C24E101/jsonp.js" charset="utf-8"></script>
<script src="https://cdn.hatter.ink/doc/4265_310FC0D4E9522B07A287276139701E0E/moment.min.js" charset="utf-8"></script>
<script src="https://cdn.hatter.ink/doc/4281_A5F75216518E14C23D9A36336EC0C9F4/timeago.min.js" charset="utf-8"></script>
</head>
<body>
<style>
.card-title { font-size: 1rem; }
.card-subtitle { font-size: 0.6rem; }
.card-text { font-size: 0.8rem; }
.card-body { padding: 0.5rem; }
.btns { padding: 2px; padding-left: 12px; padding-right: 12px; }
</style>
<div id="app" style="word-break: break-all;" v-cloak>
<div>
<b-navbar toggleable="lg" type="dark" variant="success">
<b-navbar-brand><a href="https://hatter.ink/" style="color:white;">Hatter.Ink</a> - MDS</b-navbar-brand>
</div>
<div style="margin: 0.4rem;">
<div>
Total: {{entries.length}}
<b-card-group columns>
<b-card v-for="n in entries" style="max-width: 40rem;" class="mb-2">
<b-card-text>
<img :src="n.metadataStatement.icon" style="max-width: 200px;max-height: 30px;" />
&nbsp; &nbsp;
{{n.metadataStatement.description}}<br>
<span v-if="n.aaguid">AAGUID: <u>{{n.aaguid}}<br></u></span>
Protocol family: <b><u>{{n.metadataStatement.protocolFamily}}</u></b><br>
Key protection: <b><u>{{n.metadataStatement.keyProtection}}</u></b><br>
Authentication algorithms: <b><u>{{n.metadataStatement.authenticationAlgorithms}}</u></b><br>
Public key llg &amp; encodings: <b><u>{{n.metadataStatement.publicKeyAlgAndEncodings}}</u></b><br>
Attestation typess: <b><u>{{n.metadataStatement.attestationTypes}}</u></b><br>
User verification details:
<span v-for="dd in n.metadataStatement.userVerificationDetails">
<b><u><span v-for="d in dd">{{d.userVerificationMethod}}, </span></u></b>;
</span><br>
<span v-if="n.metadataStatement?.authenticatorGetInfo?.versions">
Versions: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.versions}}</u></b><br>
</span>
<span v-if="n.metadataStatement?.authenticatorGetInfo?.extensions">
Extensions: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.extensions}}</u></b><br>
</span>
<span v-if="n.metadataStatement?.authenticatorGetInfo?.transports">
Transports: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.transports}}</u></b><br>
</span>
<span v-if="n.metadataStatement?.authenticatorGetInfo?.algorithms">
Algorithms: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.algorithms}}</u></b><br>
</span>
</b-card-text>
<!-- <div style="margin-bottom: 10px; float: right;">
<b-button v-if="!isArchive" href="#" variant="secondary" @click="doArchive(n.id);" class="btns">Archive</b-button>
<b-button v-if="isArchive" href="#" variant="danger" @click="doDelete(n.id);" class="btns">Delete</b-button>
<b-button v-if="isArchive" href="#" variant="secondary" @click="doRecover(n.id);" class="btns">Recover</b-button>
<b-button href="#" variant="info" @click="doView(n.id);" class="btns">View</b-button>
<b-button href="#" variant="primary" @click="doEdit(n.id);" class="btns">Edit</b-button>
</div> -->
</b-card>
</b-card-group>
</div>
</div>
</div>
<script>
</script>
<script>
var retObject = {};
async function refreshNotes() {
retObject.entries = (await fetch_with_get_as_json('mds.json', {}, true)).entries;
}
async function initVueApp() {
await refreshNotes();
var initVue = () => {
new Vue({
el: '#app',
data() {
return retObject;
},
watch: {},
methods: {}
});
};
initVue();
}
initVueApp().then(() => {}).catch((e) => alert("ERROR: " + e));
</script>
</body>
</html>