130 lines
5.8 KiB
HTML
Executable File
130 lines
5.8 KiB
HTML
Executable File
{% extends "admin/base.html" %}
|
|
{% block title %}OTP & Sicherheit{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="mb-4">
|
|
<h1><i class="bi bi-shield-lock me-2"></i>OTP & Sicherheit</h1>
|
|
<p class="text-muted">Einstellungen fuer Einmalpasswoerter und Authentifizierung</p>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-lg-8">
|
|
<form method="POST" action="{{ url_for('admin.settings_otp') }}">
|
|
<!-- OTP Settings -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<i class="bi bi-key me-2"></i>
|
|
Einmalpasswort (OTP)
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-4 mb-3">
|
|
<label for="otp_expiry_minutes" class="form-label">Gueltigkeit (Minuten)</label>
|
|
<input type="number" class="form-control" id="otp_expiry_minutes" name="otp_expiry_minutes"
|
|
value="{{ config.otp_expiry_minutes }}" min="1" max="60">
|
|
<div class="form-text">Wie lange ist ein OTP-Code gueltig?</div>
|
|
</div>
|
|
<div class="col-md-4 mb-3">
|
|
<label for="otp_length" class="form-label">Code-Laenge (Ziffern)</label>
|
|
<input type="number" class="form-control" id="otp_length" name="otp_length"
|
|
value="{{ config.otp_length }}" min="4" max="8">
|
|
<div class="form-text">Anzahl der Ziffern im Code</div>
|
|
</div>
|
|
<div class="col-md-4 mb-3">
|
|
<label for="otp_max_attempts" class="form-label">Max. Fehlversuche</label>
|
|
<input type="number" class="form-control" id="otp_max_attempts" name="otp_max_attempts"
|
|
value="{{ config.otp_max_attempts }}" min="1" max="10">
|
|
<div class="form-text">Bevor Code ungueltig wird</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Prefill Token Settings -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<i class="bi bi-link-45deg me-2"></i>
|
|
Prefill-Token (WordPress-Integration)
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6 mb-3">
|
|
<label for="prefill_token_expiry" class="form-label">Token-Gueltigkeit (Sekunden)</label>
|
|
<input type="number" class="form-control" id="prefill_token_expiry" name="prefill_token_expiry"
|
|
value="{{ config.prefill_token_expiry }}" min="60" max="3600">
|
|
<div class="form-text">
|
|
Standard: 300 (5 Minuten). Maximaler Wert: 3600 (1 Stunde)
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="alert alert-info mb-0">
|
|
<i class="bi bi-info-circle me-2"></i>
|
|
Prefill-Tokens werden von WordPress generiert, um Kundendaten automatisch
|
|
im Login-Formular vorzufuellen.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-danger">
|
|
<i class="bi bi-check-lg me-1"></i>
|
|
Speichern
|
|
</button>
|
|
</form>
|
|
</div>
|
|
|
|
<div class="col-lg-4">
|
|
<!-- Info Card -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<i class="bi bi-lightbulb me-2"></i>
|
|
Empfehlungen
|
|
</div>
|
|
<div class="card-body small">
|
|
<p class="mb-2"><strong>OTP-Gueltigkeit:</strong></p>
|
|
<p class="text-muted mb-3">
|
|
10 Minuten sind ein guter Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit.
|
|
</p>
|
|
|
|
<p class="mb-2"><strong>Code-Laenge:</strong></p>
|
|
<p class="text-muted mb-3">
|
|
6 Ziffern bieten ausreichende Sicherheit (1 Million Kombinationen).
|
|
</p>
|
|
|
|
<p class="mb-2"><strong>Fehlversuche:</strong></p>
|
|
<p class="text-muted mb-0">
|
|
3 Versuche schuetzen vor Brute-Force-Angriffen, ohne legitime Nutzer zu sehr einzuschraenken.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Current Values -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<i class="bi bi-gear me-2"></i>
|
|
Aktuelle Werte
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-dark table-sm mb-0">
|
|
<tr>
|
|
<td class="text-muted">OTP gueltig</td>
|
|
<td class="text-end">{{ config.otp_expiry_minutes }} Min.</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="text-muted">Code-Laenge</td>
|
|
<td class="text-end">{{ config.otp_length }} Ziffern</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="text-muted">Max. Versuche</td>
|
|
<td class="text-end">{{ config.otp_max_attempts }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="text-muted">Token-Gueltigkeit</td>
|
|
<td class="text-end">{{ config.prefill_token_expiry }} Sek.</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|