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

¿Qué aporta la integración de Bizum y métodos similares en el proceso de pago?

El comercio electrónico español, que se encuentra en pleno crecimiento y transformación, vive actualmente un…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Desarrollo de plugins a medida WordPress

El desarrollo de plugins a medida WordPress resuelve pagos, reservas y flujos propios con integración…

hace % días

Plugin RedSys WooCommerce: cobros sin errores

El plugin RedSys WooCommerce conecta tu tienda con el banco, reduce errores de cobro y…

hace % días

Cómo resolver un rechazo SIS en WordPress

Aprende a resolver rechazo SIS en WordPress: identifica el código, revisa RedSys, pedidos y firmas…

hace % días