@model Dpz.Core.Authenticator.SetupCode
@{
Layout = null;
}
<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<title>双因素绑定</title>
<style>
img{
width: 207px;
}
.layout{
display: flex;
flex-direction: column;
align-items: center;
margin-top: 30vh;
}
.layout > *{
margin: 5px 0;
}
input[type=number]{
height: 15px;
font-size: 14px;
line-height: 1.3;
border-width: 1px;
border-style: solid;
background-color: #fff;
border-radius: 2px;
padding: 12px;
color: #000;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type=number] {
-moz-appearance:textfield;
outline: none;
}
button {
display: block;
outline: 0;
overflow: hidden;
position: relative;
transition: .3s;
cursor: pointer;
user-select: none;
height: 40px;
text-align: center;
line-height: 40px;
width: 100px;
font-size: 15px;
background: tomato;
color: #fff;
border-radius: 10px;
}
button::after {
content: '';
position: absolute;
width: 100%;
padding-top: 100%;
background: transparent;
border-radius: 50%;
left: 50%;
top: 50%;
transform: translate(-50%,-50%)
}
button:active::after {
transform: scale(0);
opacity: .5;
transition: 0s;
}
button:hover:after{
animation: ripple 1s;
}
button:active:after{
animation: ripple 1s;
}
button:focus:after{
animation: ripple 1s;
}
@@keyframes ripple{
from {
transform:translate(-50%,-50%) scale(0);
background: rgba(0,0,0,.25);
}
to {
transform:translate(-50%,-50%) scale(1);
background: transparent;
}
}
@@media (prefers-color-scheme: dark) {
body {
background: #0c0c0e;
color: #b5b1b1;
}
input[type=number]{
background-color: #000000;
border-color: #6a737d;
color: #b5b1b1;
}
}
</style>
</head>
<body>
<form method="post" asp-action="HandleBindTwoFactor" autocomplete="off">
<input type="hidden" name="fromUrl" value="@TempData["FromUrl"]"/>
<div class="layout">
<img alt="qrcode" src="@Model.QrCodeSetupImageUrl"/>
<div>手动输入:<span>@Model.ManualEntryKey</span></div>
<div>PIN码:<input required type="text" name="pinCode" pattern="\d+" maxlength="6" /></div>
@if (TempData["Msg"] is string message)
{
<div style="color:red">@message</div>
}
<div>
<button>验证</button>
</div>
</div>
</form>
</body>
</html>