19a6bbd392
Added language support for english and german (swappable)
55 lines
1.9 KiB
HTML
55 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Verify Login</title>
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/login.css') }}">
|
|
</head>
|
|
|
|
<body>
|
|
<nav class="auth-nav">
|
|
<a class="brand" href="{{ url_for('main.home') }}">
|
|
<span class="brand-mark">♛</span>
|
|
<span>8-Damen- und 8-Tuerme Solver</span>
|
|
</a>
|
|
|
|
<ul class="nav-links">
|
|
<li><a href="{{ url_for('login.login') }}">Login</a></li>
|
|
<li><a href="{{ url_for('login.register') }}">Create account</a></li>
|
|
</ul>
|
|
</nav>
|
|
|
|
<main class="auth-shell">
|
|
<section class="auth-panel">
|
|
<h1>Verify your login</h1>
|
|
<p class="muted">Open your authenticator app and enter the current 6-digit code.</p>
|
|
|
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
|
{% if messages %}
|
|
{% for category, message in messages %}
|
|
<p class="message {{ category }}">{{ message }}</p>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endwith %}
|
|
|
|
{% if error %}
|
|
<p class="message error">{{ error }}</p>
|
|
{% endif %}
|
|
|
|
<form action="{{ url_for('login.verify_two_factor') }}" method="post">
|
|
<label for="code">Verification code</label>
|
|
<input id="code" type="text" name="code" inputmode="numeric" pattern="[0-9]{6}" maxlength="6" required>
|
|
<p class="field-hint">Codes refresh automatically every 30 seconds in your authenticator app.</p>
|
|
|
|
<button class="magnetic" type="submit" data-loading-label="Verifying...">Verify</button>
|
|
</form>
|
|
</section>
|
|
</main>
|
|
|
|
<script src="{{ url_for('static', filename='js/login.js') }}" defer></script>
|
|
</body>
|
|
|
|
</html>
|