Descripción
El plugin de dos factores agrega una capa adicional de seguridad a tu inicio de sesión de WordPress al exigir que los usuarios proporcionen una segunda forma de autenticación además de su contraseña. Esto ayuda a proteger contra accesos no autorizados incluso si las contraseñas se ven comprometidas.
Instrucciones de instalación
Importante: Cada usuario debe configurar individualmente sus ajustes de autenticación de dos factores.
Para usuarios individuales
- Navigate to your profile: Go to “Users” “Your Profile” in the WordPress admin
- Encuentra opciones de dos factores: Desplázate hasta la sección de “Opciones de dos factores”.
- Choose your methods: Enable one or more authentication providers (noting a site admin may have hidden one or more so what is available could vary):
- Aplicación de autenticación (TOTP) – Usa apps como Google Authenticator, Authy o 1Password
- Códigos de correo electrónico: recibe códigos de un solo uso por correo electrónico
- Códigos de respaldo – Genera códigos de respaldo de un solo uso para emergencias
- Método Dummy: solo para fines de prueba (requiere WP_DEBUG)
- Configura cada método: Sigue las instrucciones de configuración para cada proveedor habilitado
- Establecer método principal: Elige qué método usar como tu autenticación predeterminada.
- Guardar cambios: Haz clic en Actualizar perfil para guardar tus opciones
Para administradores del sitio
- Configuración del plugin: El plugin proporciona una página de opciones en “Ajustes Dos factores” para configurar qué proveedores deben deshabilitarse a nivel de todo el sitio.
- Gestión de usuarios: Los administradores pueden configurar 2FA para otros usuarios editando sus perfiles.
- Security recommendations: Encourage users to enable backup methods to prevent account lockouts
Métodos de autenticación disponibles
Aplicación de autenticación (TOTP) – Recomendado
- Seguridad: Alta – Contraseñas de un solo uso basadas en tiempo
- Configuración: Escanea el código QR con la aplicación de autenticación
- Compatibilidad: Funciona con Google Authenticator, Authy, 1Password y otras aplicaciones TOTP.
- Ideal para: La mayoría de los usuarios; ofrece una seguridad excelente con buena usabilidad
Códigos de respaldo: recomendados
- Seguridad: Media – Códigos de un solo uso
- Configuración: Genera 10 códigos de respaldo para acceso de emergencia
- Compatibilidad: Funciona en todas partes; no se necesita hardware especial
- Ideal para: Acceso de emergencia cuando no hay otros métodos disponibles
Códigos por correo electrónico
- Security: Medium – One-time codes sent via email
- Configuración: Automática: usa tu dirección de correo electrónico de WordPress
- Compatibilidad: Funciona con cualquier dispositivo con capacidad de correo electrónico
- Ideal para: Usuarios que prefieren la autenticación basada en correo electrónico
Claves de seguridad FIDO U2F
- Obsoleto y eliminado debido a la pérdida de compatibilidad con el navegador.
Método simulado
- Seguridad: Ninguna: Siempre tiene éxito
- Configuración: Solo disponible cuando WP_DEBUG está habilitado.
- Propósito: Solo para pruebas y desarrollo
- Mejor para: Desarrolladores que prueban el plugin
Notas importantes
Requisito de HTTPS
- Todos los métodos funcionan en sitios HTTP y HTTPS.
Compatibilidad con navegadores
- Los métodos TOTP y correo electrónico funcionan en todos los dispositivos y navegadores.
Recuperación de cuenta
- Siempre habilita los códigos de respaldo para evitar quedarte bloqueado(a) fuera de tu cuenta
- Si pierdes el acceso a todos los métodos de autenticación, contacta a tu administrador del sitio.
Mejores prácticas de seguridad
- Use varios métodos de autenticación cuando sea posible
- Keep backup codes in a secure location
- Revisa y actualiza periódicamente tus opciones, configuración o ajustes de autenticación.
For more information about two-factor authentication in WordPress, see the WordPress Advanced Administration Security Guide.
Para más antecedentes, consulta esta entrada.
Acciones y filtros
Aquí hay una lista de ganchos de acción y filtro proporcionados por el plugin:
- El filtro
two_factor_providersanula los proveedores de dos factores disponibles, como el correo electrónico y las contraseñas de un solo uso basadas en el tiempo. Los valores del array son nombres de clases PHP de los proveedores de dos factores. - El filtro
two_factor_providers_for_useranula los proveedores de dos factores disponibles para un usuario específico. Los valores del array son instancias de clases de proveedor y el objeto de usuarioWP_Userestá disponible como el segundo argumento. - El filtro
two_factor_enabled_providers_for_useranula la lista de proveedores de dos factores activados para un usuario. El primer argumento es un array de nombres de clases como valores de proveedores activados, el segundo argumento es el ID del usuario. - La acción
two_factor_user_authenticated, que recibe el objeto de conexiónWP_Usercomo primer argumento, para definir el usuario registrado justo después del flujo de trabajo de identificación. - El filtro
two_factor_user_api_login_enablerestringe la identificación para la API REST y XML-RPC a solo contraseñas de aplicación. Ofrece el ID de usuario como segundo argumento. - El filtro
two_factor_email_token_ttlanula el intervalo de tiempo en segundos que un token de correo electrónico es tenido en cuenta después de la generación. Acepta el tiempo en segundos como el primer argumento y el ID del objetoWP_Userque está siendo identificado. - El filtro
two_factor_email_token_lengthomite el contador por defecto de 8 caracteres para los tokens por correo electrónico. - El filtro
two_factor_backup_code_lengthomite el contador por defecto de 8 caracteres para los códigos de respaldo. OfreceWP_Userdel usuario asociado como segundo argumento. - El filtro
two_factor_rest_api_can_edit_useromite si se pueden editar los ajustes de dos factores de un usuario a través de la API REST. El primer argumento es el$can_editboleano actual, el segundo argumento es el ID de usuario. - Acción
two_factor_before_authentication_promptque recibe el objeto del proveedor y se ejecuta antes del aviso que se muestra en el formulario de entrada de autenticación. - Acción
two_factor_after_authentication_promptque recibe el objeto del proveedor y se ejecuta después del aviso mostrado en el formulario de inicio de sesión. - Acción
two_factor_after_authentication_inputque recibe el objeto del proveedor y se activa después de que se muestre el input en el formulario de ingreso de autenticación (si el formulario no contiene ningún input, la acción se activa inmediatamente después detwo_factor_after_authentication_prompt). two_factor_login_backup_linksfiltra los enlaces de respaldo mostrados en el formulario de inicio de sesión con dos factores.
Redireccionar después del desafío de dos factores
Para redirigir a los usuarios a una URL específica después de completar el desafío de dos factores, usa el filtro login_redirect integrado en el núcleo de WordPress. El filtro funciona de la misma manera que en un flujo de inicio de sesión estándar de WordPress:
add_filter( 'login_redirect', function( $redirect_to, $requested_redirect_to, $user ) {
return home_url( '/dashboard/' );
}, 10, 3 );
Capturas de pantalla




FAQ
¿Con qué versiones de PHP y WordPress es compatible el plugin Two-Factor?
Este plugin es compatible con las dos últimas versiones mayores de WordPress y con la versión mínima de PHP admitida por estas versiones de WordPress.
¿Cómo puedo enviar comentarios u obtener ayuda de un fallo?
El mejor lugar para informar de fallos, sugerencias de características o cualquier otro comentario es en la página de problemas de Two Factor en GitHub. Antes de enviar un nuevo problema, por favor, busca en los problemas existentes para comprobar si alguien ha informado del mismo comentario.
¿Dónde puedo informar fallos de seguridad?
Los colaboradores del plugin y la comunidad de WordPress se toman en serio los fallos de seguridad. Apreciamos tus esfuerzos para divulgar responsablemente tus hallazgos, y haremos todo lo posible para reconocer tus contribuciones.
Para informar un problema de seguridad, visita el programa WordPress HackerOne.
¿Qué pasa si pierdo el acceso a todos mis métodos de autenticación?
Si tienes habilitados los códigos de respaldo, puedes usar uno de ellos para recuperar el acceso. Si no tienes códigos de respaldo o ya los usaste todos, necesitarás contactar al administrador de tu sitio para restablecer tu cuenta. Por eso es importante habilitar siempre los códigos de respaldo y mantenerlos en un lugar seguro.
¿Puedo usar este plugin con WebAuthn?
El plugin antes admitía FIDO U2F, que era un predecesor de WebAuthn. Hay un problema abierto para agregar soporte de WebAuthn aquí: https://github.com/WordPress/two-factor/pull/427
¿Hay una forma recomendada de usar claves de acceso o llaves de seguridad de hardware con dos factores?
Sí. Para claves de acceso (passkeys) y llaves de seguridad de hardware, puedes instalar el plugin Two-Factor Provider: WebAuthn de dos factores: https://wordpress.org/plugins/two-factor-provider-webauthn/ . Se integra directamente con Two-Factor y agrega autenticación basada en WebAuthn como una opción adicional de dos factores para los usuarios.
Reseñas
Colaboradores & Desarrolladores
“Two Factor” es software de código abierto. Las siguientes personas han contribuido a este plugin.
Colaboradores“Two Factor” ha sido traducido en 41 idiomas. Gracias a los traductores por sus contribuciones.
Traduce “Two Factor” a tu idioma.
¿Interesado en el desarrollo?
Revisa el código, echa un vistazo al repositorio SVN, o suscríbete al registro de desarrollo por RSS .
Historial de cambios
0.16.0 – 27-03-2026
- Cambios importantes: Eliminar el soporte heredado del proveedor FIDO U2F mediante #439.
- Nuevas funcionalidades: Agregar una página de configuración dedicada para la configuración del plugin en wp-admin mediante #764.
- Nuevas funcionalidades: Agregar un filtro de enlaces de soporte para que las personas usuarias puedan personalizar enlaces de recuperación/ayuda contextual mediante #615.
- Nuevas funciones: Actualiza el estilo y el comportamiento de la interfaz de códigos de respaldo mediante #804.
- Correcciones de errores: Elimina los secretos TOTP almacenados cuando el proveedor TOTP se deshabilite mediante #802.
- Correcciones de errores: Endurecer el manejo del proveedor para que las verificaciones de inicio de sesión/opciones no fallen “abierto” cuando los proveedores esperados desaparezcan por #586.
- Corrección de errores: Asegura que solo los proveedores configurados se guarden y habiliten en las opciones del usuario mediante #798.
- Correcciones de errores: Mejore la accesibilidad de la página de configuración y corrija el comportamiento del #828 y el enlace de configuración del perfil mediante #830.
- Correcciones de errores: Corrige las infracciones de PHPCS en los archivos del proveedor mediante #851.
- Actualizaciones de desarrollo: Mueve los estilos de inicio de sesión y los scripts de proveedores desde la salida en línea a recursos en cola o externos mediante #807 y #814.
- Actualizaciones de desarrollo: Mejora la documentación en línea y la compatibilidad con análisis estático (WPCS/phpstan) mediante #810, #815 y #817.
- Actualizaciones de desarrollo: Mejora la confiabilidad de las pruebas unitarias e integra la generación de reportes de cobertura de código en CI mediante #825, #841 y #842.
- Actualizaciones de desarrollo: Actualiza la documentación de readme y moderniza la infraestructura del flujo de CI mediante #835, #837, #843 y #849.
- Actualizaciones de dependencias: Actualiza
qsde 6.14.1 a 6.14.2 mediante #794. - Actualizaciones de dependencias: Actualiza
basic-ftpde la versión 5.0.5 a la 5.2.0 mediante #816. - Actualizaciones de dependencias: Aplique actualizaciones automáticas de lint/formato y las actualizaciones de paquetes de Composer asociadas mediante #799.
0.15.0 – 2026-02-13
- Cambios que rompen la compatibilidad: activa el flujo de dos factores solo cuando @kasparsd lo espere en #660 y #793.
- Nuevas funciones: Incluye la dirección IP del usuario y una advertencia contextual en los correos de códigos con dos factores por @todeveni en #728
- Nuevas funciones: Optimiza el texto del correo electrónico para TOTP por @masteradhoc en #789
- New Features: Add “Settings” action link to plugin list for quick access to profile by @hardikRathi in #740
- Nuevas funcionalidades: ganchos adicionales de formularios por @eric-michel en #742
- Nuevas funciones: Compatibilidad completa con RFC6238 por @ericmann en #656
- Nuevas funciones: Experiencia de usuario consistente para la configuración de TOTP por @kasparsd en #792
- Documentación:
@sincedocumentación de @masteradhoc en #781 - Documentación: Actualizar la documentación de usuarios y administradores, preparar más capturas de pantalla para @jeffpaul en #701
- Documentación: Agregar historial de cambios y créditos, actualizar las notas de la versión con @jeffpaul en #696
- Documentación: Léeme.txt claro de @masteradhoc en #785
- Documentación: Agregar información de fecha y hora sobre las instrucciones de configuración de TOTP, por @masteradhoc, en #772
- Documentación: Aclare las instrucciones de configuración de TOTP por @masteradhoc en #763
- Documentación: Actualiza RELEASING.md por @jeffpaul en #787
- Actualizaciones de desarrollo: Pausa despliegues al SVN trunk para fusiones a
masterpor @kasparsd en #738 - Actualizaciones de desarrollo: corrige las verificaciones de CI para la compatibilidad con PHP realizada por @kasparsd en #739
- Actualizaciones del desarrollo: corrige las referencias de Playground, por @kasparsd, en #744
- Actualizaciones de desarrollo: Mantener las traducciones existentes al introducir nuevo texto de ayuda en correos electrónicos por @kasparsd en #745
- Actualizaciones del desarrollo: corrige
missing_direct_file_access_protectionpor @masteradhoc en #760 - Actualizaciones de desarrollo: corrige
mismatched_plugin_namecon @masteradhoc en #754 - Actualizaciones de desarrollo: Presenta el flujo de trabajo de Props Bot de parte de @jeffpaul en #749
- Actualizaciones de desarrollo: Revisión del plugin: corrige el parámetro faltante $domain mediante @masteradhoc en #753
- Actualizaciones de desarrollo: Pruebas: Actualización a la versión de WordPress 6.8 compatible por @masteradhoc en #770
- Actualizaciones de desarrollo: Corrige el mensaje obsoleto de PHP 8.5 mediante @masteradhoc en #762
- Actualizaciones de desarrollo: Excluir las verificaciones 7.2 y 7.3 contra el trunk por @masteradhoc en #769
- Actualizaciones de desarrollo: Corregir errores de verificación del plugin:
MissingTranslatorsCommentyMissingSingularPlaceholderde @masteradhoc en #758 - Actualizaciones de desarrollo: Agregar pruebas de PHP 8.5 para la versión más reciente y la de trunk de WP por @masteradhoc en #771
- Actualizaciones de desarrollo: Agregar
phpcs:ignorepara falsos positivos por @masteradhoc en #777 - Actualizaciones del desarrollo: Arreglo (totp): enlace de
otpauthen la URL del código QR por @sjinks en #784 - Actualizaciones del desarrollo: Actualiza deploy.yml según @masteradhoc en #773
- “Actualizaciones de desarrollo: Actualización requerida de la versión de WordPress por @masteradhoc en #765”
- Actualizaciones de desarrollo: Corrección: asegure que la ejecución se detenga después de las redirecciones por @sjinks en #786
- Actualizaciones de desarrollo: corrige errores de
WordPress.Security.EscapeOutput.OutputNotEscapedpor @masteradhoc en #776 - Actualizaciones de dependencias: Actualiza qs y expresa por @dependabot[bot] en #746
- Actualizaciones de dependencias: Actualiza lodash de 4.17.21 a 4.17.23 mediante @dependabot[bot] en #750
- Actualizaciones de dependencias: Actualice lodash-es de 4.17.21 a 4.17.23 mediante @dependabot[bot] en #748
- Actualizaciones de dependencias: Aumenta phpunit/phpunit de 8.5.44 a 8.5.52 mediante @dependabot[bot] en #755
- Actualizaciones de dependencias: Aumenta symfony/process de 5.4.47 a 5.4.51 mediante @dependabot[bot] en #756
- Actualizaciones de dependencias: Actualiza qs y body-parser con @dependabot[bot] en #782
- Actualizaciones de dependencias: Aumenta webpack de 5.101.3 a 5.105.0 mediante @dependabot[bot] en #780
0.14.2 – 11-12-2025
- Nuevas funcionalidades: Agregar un filtro para rest_api_can_edit_user_and_update_two_factor_options por @gutobenn en #689
- Actualizaciones de desarrollo: Eliminar las herramientas de Coveralls y agregar el informe de cobertura en línea por @kasparsd en #717
- Actualizaciones de desarrollo: Actualiza la ruta del blueprint para que se obtenga desde la rama principal en vez de un archivo eliminado, por @georgestephanis en #719
- Actualizaciones de desarrollo: Corrige la implementación de blueprints y recursos de wporg mediante @kasparsd en #734
- Actualizaciones de desarrollo: Sube la versión solo en lanzamientos mediante tags por @kasparsd en #735
- Actualizaciones de desarrollo: Actualiza playwright y @playwright/test mediante @dependabot[bot] en #721
- Actualizaciones de desarrollo: Actualiza tar-fs de la versión 3.1.0 a la 3.1.1 mediante @dependabot[bot] en #720
- Actualizaciones de desarrollo: Actualiza node-forge de 1.3.1 a 1.3.2 mediante @dependabot[bot] en #724
- Actualizaciones de desarrollo: Aumenta js-yaml por @dependabot[bot] en #725
- Actualizaciones del desarrollo: Marca como probado con la última versión del núcleo de WP por @kasparsd en #730
0.14.1 – 2025-09-05
- No codifiques la URL TOTP con URI para mostrarla. Por @dd32 en #711
- Eliminó el archivo Security.md duplicado mediante @slvignesh05 en #712
- Se corrigieron problemas de linting mediante @sudar en #707
- Actualiza dependencias de desarrollo y corrige el fallo del test unitario de QR mediante @kasparsd en #714
- Disparar el evento de cambio de js de la casilla de verificación por @gedeminas en #688
0.14.0 – 2025-07-03
- Características: Habilita contraseñas de aplicación para la autenticación de REST API y XML-RPC (por defecto) por @joostdekeijzer en #697 y #698. Anteriormente esto requería que el filtro two_factor_user_api_login_enable se configurara en true, lo cual ahora es el predeterminado durante la autenticación con contraseñas de aplicación. El inicio de sesión por XML-RPC sigue deshabilitado para contraseñas de usuario regulares.
- Características: Etiqueta los métodos recomendados para simplificar la configuración por @kasparsd en #676 y #675
- Documentación: agregar demo de plugin de WP.org por @kasparsd en #667
- Documentación: Documenta versiones compatibles del núcleo de WP y de PHP por @jeffpaul en #695
- Documentación: Documente el proceso de lanzamiento de la mano de @jeffpaul en #684
- Herramientas: Eliminar capturas de pantalla y gráficos duplicados de WP.org del tronco de SVN mediante @jeffpaul en #683
