Registrate o inicia tu sesión para ver este contenidoinc/class/c.2fa.php → inc/class/
inc/php/2fa.php → inc/php/
inc/php/ajax/ajax.2fa.php → inc/php/ajax/
themes/default/templates/t.2fa.tpl → themes/default/templates/if(empty($user) or empty($pass)) echo '0: Faltan datos';
else echo $tsUser->loginUser($user, $pass, $reme);
if(empty($user) or empty($pass)) {
echo '0: Faltan datos';
} else {
$resultado = $tsUser->loginUser($user, $pass, $reme);
if ($resultado === TRUE || is_numeric($resultado)) {
// ── 2FA ──
require_once TS_CLASS . 'c.2fa.php';
$ts2FA = new ts2FA();
if ($ts2FA->tieneActivo($tsUser->uid)) {
$tsUser->logoutUser($tsUser->uid, null);
$_SESSION['ts_2fa_pending'] = $tsUser->uid;
$_SESSION['ts_2fa_remember'] = $reme;
$ts2FA->enviarCodigo($tsUser->uid);
echo '3: ' . $tsCore->settings['url'] . '/2fa/';
break;
}
// ────────
echo $resultado;
} else {
echo $resultado;
}
}<div class="buttons">
<input type="button" value="Guardar" onclick="cuenta.save(1)" class="mBtn btnOk">
<input type="button" value="Siguiente" onclick="cuenta.save(1, true)" class="mBtn btnOk">
</div>
<div class="field">
<label>Verificación en dos pasos (2FA):</label>
<div style="padding:10px; background:#f8f9fa; border-radius:6px; border:1px solid #eee;">
<label style="display:flex; align-items:center; gap:10px; cursor:pointer;">
<input type="checkbox" name="2fa"
{if $tsUser->info.user_2fa}checked{/if}
onchange="cuenta.toggle2FA(this.checked)"/>
<span>
<strong>Activar 2FA</strong><br>
<small style="color:#888; font-weight:400;">Al iniciar sesión se te pedirá un código enviado a tu email.</small>
</span>
</label>
</div>
</div>}
}
var avatar = {
},
toggle2FA: function(activo) {
$.ajax({
type: 'POST',
url: global_data.url + '/2fa-toggle.php',
data: { activo: activo ? 1 : 0 },
dataType: 'json',
success: function(r) {
if (r.ok) {
cuenta.alert(1, activo ? '2FA activado' : '2FA desactivado', activo ? 'Ahora se pedirá un código al iniciar sesión.' : 'La verificación en dos pasos ha sido desactivada.');
}
}
});
}
}
var avatar = {ALTER TABLE u_miembros DROP COLUMN user_2fa;
DROP TABLE IF EXISTS w_2fa_tokens;