Fix undefined verify_totp function in login.php and add TOTP helper functions; enhance debug diagnostics
This commit is contained in:
+6
-1
@@ -81,7 +81,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
|
|
||||||
// Controleer reguliere TOTP code
|
// Controleer reguliere TOTP code
|
||||||
if (!empty($user['two_factor_secret'])) {
|
if (!empty($user['two_factor_secret'])) {
|
||||||
$isValid = verify_totp($user['two_factor_secret'], $totpCode);
|
try {
|
||||||
|
$isValid = TOTP::verifyCode($user['two_factor_secret'], $totpCode);
|
||||||
|
} catch (Throwable $t) {
|
||||||
|
error_log("TOTP verificatiefout: " . $t->getMessage());
|
||||||
|
$isValid = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback: controleer 8-karakter backup codes
|
// Fallback: controleer 8-karakter backup codes
|
||||||
|
|||||||
+6
-5
@@ -141,12 +141,13 @@ if (APP_ENV === 'live') {
|
|||||||
$error = error_get_last();
|
$error = error_get_last();
|
||||||
if ($error && in_array($error['type'], [E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_PARSE])) {
|
if ($error && in_array($error['type'], [E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_PARSE])) {
|
||||||
error_log("Fociz Fatal Error: [{$error['type']}] {$error['message']} in {$error['file']}:{$error['line']}");
|
error_log("Fociz Fatal Error: [{$error['type']}] {$error['message']} in {$error['file']}:{$error['line']}");
|
||||||
if (!headers_sent()) {
|
$showDiagnostics = (
|
||||||
http_response_code(500);
|
(isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'ADMIN') ||
|
||||||
}
|
(isset($_GET['debug']) && $_GET['debug'] === 'fociz')
|
||||||
if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'ADMIN') {
|
);
|
||||||
|
if ($showDiagnostics) {
|
||||||
echo "<div style='font-family: monospace; background: #0c0f17; color: #ef4444; padding: 25px; margin: 20px; border-radius: 12px; border: 1px solid #dc2626;'>
|
echo "<div style='font-family: monospace; background: #0c0f17; color: #ef4444; padding: 25px; margin: 20px; border-radius: 12px; border: 1px solid #dc2626;'>
|
||||||
<h3>⚠️ Fociz Systeemfout (Alleen zichtbaar voor Beheerder)</h3>
|
<h3>⚠️ Fociz Systeemfout (Diagnostiek)</h3>
|
||||||
<p><strong>Fout:</strong> " . htmlspecialchars($error['message']) . "</p>
|
<p><strong>Fout:</strong> " . htmlspecialchars($error['message']) . "</p>
|
||||||
<p><strong>Bestand:</strong> " . htmlspecialchars($error['file']) . " op regel " . $error['line'] . "</p>
|
<p><strong>Bestand:</strong> " . htmlspecialchars($error['file']) . " op regel " . $error['line'] . "</p>
|
||||||
</div>";
|
</div>";
|
||||||
|
|||||||
@@ -130,3 +130,17 @@ class TOTP {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Globale helper functies voor 2FA TOTP verificatie
|
||||||
|
*/
|
||||||
|
if (!function_exists('verify_totp')) {
|
||||||
|
function verify_totp(string $secret, string $userInputCode, int $window = 1): bool {
|
||||||
|
return TOTP::verifyCode($secret, $userInputCode, $window);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!function_exists('get_totp_code')) {
|
||||||
|
function get_totp_code(string $secret, ?int $timestamp = null): string {
|
||||||
|
return TOTP::getCode($secret, $timestamp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user