MFA: Trusted Device Feature — Gerät für X Tage merken, überspringt MFA
- User kann nach TOTP-Eingabe das Gerät für 1–30 Tage speichern - Cookie mfa_trust mit zufälligem Token, gespeichert in trusted_devices[] - Nächstes POST /login: Cookie prüfen → gültiges Token → MFA überspringen - Abgelaufene Einträge werden beim Login automatisch bereinigt - Logout + MFA-Deaktivierung löschen Cookie + trusted_devices - mfa_verify.html: checkbox + days-select (1/3/7/14/30 Tage)
This commit is contained in:
@@ -42,6 +42,32 @@
|
||||
maxlength="6" pattern="[0-9]{6}" required autofocus>
|
||||
</div>
|
||||
<button class="btn btn-primary w-100 mb-2" type="submit">Bestätigen</button>
|
||||
<div class="form-check mb-2">
|
||||
<input class="form-check-input" type="checkbox" id="remember" name="remember" value="7">
|
||||
<label class="form-check-label" for="remember">
|
||||
Gerät für
|
||||
<select class="form-select form-select-sm d-inline-block w-auto" id="remember_days" onchange="document.getElementById('remember').value=this.value">
|
||||
<option value="1">1 Tag</option>
|
||||
<option value="3">3 Tage</option>
|
||||
<option value="7" selected>7 Tage</option>
|
||||
<option value="14">14 Tage</option>
|
||||
<option value="30">30 Tage</option>
|
||||
</select>
|
||||
merken
|
||||
</label>
|
||||
</div>
|
||||
<script>
|
||||
(function() {
|
||||
var cb = document.getElementById('remember');
|
||||
var sel = document.getElementById('remember_days');
|
||||
cb.addEventListener('change', function() {
|
||||
if (this.checked) this.value = sel.value;
|
||||
});
|
||||
sel.addEventListener('change', function() {
|
||||
if (cb.checked) cb.value = this.value;
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</form>
|
||||
|
||||
<p class="text-center text-muted mt-3 small">
|
||||
|
||||
Reference in New Issue
Block a user