Sin categoría

Iniciar sesión con un usuario en WordPress usando código

En algún proyecto he tenido que preparar algún mecanismo para hacer un inicio de sesión o login sin usuario y contraseña, es decir de foma programática. ¿Por qué puede pasarte esto? Os planteo una serie de posibilidades que se me vienen ahora a la cabeza pero podrían ser todas las que necesitéis:

  • Una aplicación móvil en la que el usuario está autenticado y entonces accede a un visor web donde se muestra un sitio que es WordPress, sería un poco raro que tuviera que volver a loguearse al entrar al web view
  • Un listado de usuarios de una Intranet hecha a medida donde el responsable quiere ver algo como lo verían sus empleados y no conocer la contraseña de estos

Y bueno, hay plugins que resuelven este problema de forma parcial para casos concretos, por ejemplo estos dos:

Pero claro, ambos plugins internamente hacen esto que os voy a mostrar pero quizás estéis como en un caso en el que necesitáis gestionarlo a vuestra manera y no como estos plugins proponen.

Son solo tres líneas de código y debéis ejecutarlas antes de que haya un echo de PHP para evitar problemas porque las cookies de autenticación se envían en el header del paquete HTTP.

wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login, $user );

Una breve explicación de lo que hace:

  • En este ejemplo $user_id es el identificador de usuario que queremos loguear y $user es el objeto de este usuario
  • wp_set_current_user establece que el usuario actual sea el definido por el identificador $user_id y con el nombre de usuario definido por el segundo parámetro que es el nombre de usuario en cuestión
  • wp_set_auth_cookie estable la cookie de autenticación para el usuario identificado por su ID
  • El do_action final es por si hay algún plugin o tu tema que se une a ese hook para hacer cualquier acción cuando un usuario se loguea

Si os fijáis son pocas líneas de código pero son a la vez que potentes, peligrosas si se usan mal, así que cuidad dónde los integréis para evitar brechas de seguridad si no hacéis un uso correcta de ellas.

Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Francisco Javier Carazo Gil

Entradas recientes

¿Por qué falla Bizum en WooCommerce? 9 causas

Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…

hace % días

Plugin gratuito Redsys WordPress: qué revisar

Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…

hace % días

Qué necesito para activar CECA Online en mi web

¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…

hace % días

Cómo elegir una pasarela para suscripciones

Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…

hace % días

Plugin Bizum WordPress para cobrar con control

Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…

hace % días

Cómo aceptar CECA en reservas de WordPress

Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…

hace % días