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.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando…

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

0

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito