2022-07-01 05:55:53 +00:00
|
|
|
|
{%- from 'util/assetcache.html' import asset, asset_siteimg with context -%}
|
2022-06-07 09:26:22 +00:00
|
|
|
|
{%- import 'util/helpers.html' as help -%}
|
2022-05-04 23:09:46 +00:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
|
|
|
|
|
<head>
|
2022-07-01 05:55:53 +00:00
|
|
|
|
<link rel="icon" type="image/webp" href="{{asset_siteimg('icon.webp')}}">
|
2022-05-27 20:03:23 +00:00
|
|
|
|
|
2022-06-24 15:08:57 +00:00
|
|
|
|
<meta name="description" content="{{DESCRIPTION}}">
|
2022-05-04 23:09:46 +00:00
|
|
|
|
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'; connect-src 'self'; object-src 'none';">
|
|
|
|
|
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
|
|
|
|
|
|
<meta name="author" content="">
|
|
|
|
|
|
|
|
|
|
<title>2-Step Login - {{SITE_NAME}}</title>
|
|
|
|
|
|
2022-06-24 01:28:34 +00:00
|
|
|
|
<style>:root{--primary:#{{DEFAULT_COLOR}}</style>
|
2022-05-27 02:47:32 +00:00
|
|
|
|
<link rel="stylesheet" href="{{asset('css/main.css')}}">
|
2022-06-24 15:08:57 +00:00
|
|
|
|
<link rel="stylesheet" href="/assets/css/{{DEFAULT_THEME}}.css?v=57">
|
2022-05-04 23:09:46 +00:00
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body id="login">
|
|
|
|
|
|
|
|
|
|
<div class="container-fluid position-absolute h-100 p-0 overflow-auto">
|
|
|
|
|
<div class="row no-gutters h-100">
|
|
|
|
|
|
|
|
|
|
<div class="col-12 col-md-6 my-auto p-3">
|
|
|
|
|
|
|
|
|
|
<div class="row justify-content-center">
|
|
|
|
|
|
|
|
|
|
<div class="col-10 col-md-7">
|
|
|
|
|
|
|
|
|
|
<div class="mb-5">
|
|
|
|
|
<a href="/" class="text-decoration-none"><span class="h3 text-primary"></span></a>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="login-form" class="">
|
|
|
|
|
|
|
|
|
|
<h1 class="h2">Two-step login</h1>
|
|
|
|
|
|
|
|
|
|
<p class="text-muted mb-md-5">To login, please enter the 6-digit verification code generated in your authenticator app.</p>
|
|
|
|
|
|
|
|
|
|
{% if failed %}
|
|
|
|
|
<div class="alert alert-danger alert-dismissible fade show d-flex my-3" role="alert">
|
|
|
|
|
<i class="fas fa-exclamation-circle my-auto"></i>
|
|
|
|
|
<div>
|
|
|
|
|
Invalid verification code. Please try again.
|
|
|
|
|
</div>
|
|
|
|
|
<button class="close" data-bs-dismiss="alert" aria-label="Close">
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
|
|
<form action="/login" method="post" class="mt-md-3" id="login">
|
|
|
|
|
|
|
|
|
|
<input type="hidden" name="username" value="{{v.username}}">
|
|
|
|
|
<input type="hidden" name="redirect" value="{{redirect}}">
|
|
|
|
|
|
|
|
|
|
<input type="hidden" name="time" value="{{time}}">
|
|
|
|
|
<input type="hidden" name="hash" value="{{hash}}">
|
|
|
|
|
|
|
|
|
|
<label for="2fa_token" class="mt-3">Your verification code</label>
|
|
|
|
|
|
|
|
|
|
<input autocomplete="off" class="form-control" id="2fa_token" name="2fa_token" type="text" placeholder="6-digit code">
|
|
|
|
|
<small><a href="/lost_2fa">Lost your 2FA device?</a></small>
|
|
|
|
|
|
|
|
|
|
<button class="btn btn-primary login w-100 mt-3" id="login_button">Sign in</button>
|
|
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-12 col-md-6 d-none d-md-block">
|
|
|
|
|
|
|
|
|
|
<div class="splash-wrapper">
|
|
|
|
|
|
|
|
|
|
<div class="splash-overlay"></div>
|
|
|
|
|
|
2022-07-28 17:23:02 +00:00
|
|
|
|
<img alt="cover" loading="lazy" class="splash-img" src="{{asset_siteimg('cover.webp')}}"></img>
|
2022-05-04 23:09:46 +00:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
</html>
|