Admin-Login lokal: 2FA-PIN ohne Mailversand (Dev) + Mailer-Fehler abfangen
Problem: lokal konnte man sich nicht als Admin anmelden — der 2FA-PIN kam nie an (kein SMTP), und Mailer::sendAdminPin() warf sogar eine Exception, die den Login komplett abbrach (leere Antwort → „MFA fehlt"). - admin.php: Mailversand nur auf Prod + in try/catch (Mail-Fehler darf den Login NIE blocken). Lokal (!IS_PRODUCTION) wird der PIN als `devPin` in der Login-Antwort zurückgegeben — auf Prod NIEMALS (2FA bleibt Pflicht). - admin.html: devPin wird lokal automatisch ins PIN-Feld vorausgefüllt + als Hinweis angezeigt. Verifiziert (temp Test-Admin): login → devPin → verify → authenticated:true, admin-weltkueche.html erreichbar. Prod unberührt (IS_PRODUCTION-Gate). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -83,6 +83,14 @@ async function doLogin() {
|
||||
document.getElementById('step-login').classList.add('hidden');
|
||||
document.getElementById('step-pin').classList.remove('hidden');
|
||||
document.getElementById('msg').className = 'msg';
|
||||
// Dev-Umgebung (localhost): PIN kommt in der Antwort mit → direkt vorausfüllen,
|
||||
// damit man sich ohne Mailversand anmelden kann. Auf Prod gibt es kein devPin.
|
||||
if (r.devPin) {
|
||||
document.getElementById('a-pin').value = r.devPin;
|
||||
document.getElementById('pin-email').textContent = 'Dev-Umgebung';
|
||||
var hint = document.querySelector('#step-pin .step-hint');
|
||||
if (hint) hint.innerHTML = '🔧 <b>Dev:</b> kein Mailversand — PIN <b>' + r.devPin + '</b> ist vorausgefüllt. Auf „Bestätigen".';
|
||||
}
|
||||
document.getElementById('a-pin').focus();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user