Perder una contraseña es muy frustrante, y si somos los administradores de una web es importante que podamos restaurar la contraseña, especialmente del usuario número uno, el super admin.
Existen varias maneras seguras de poder recuperar la contraseña, y vamos a ver todas aquí ordenándolas primero por las mas sencilla de todas y que Drupal provee, para después otras que necesitan de otra herramienta.
Vamos a ver 4 métodos distintos que podemos utilizar para cambiar la contraseña en Drupal, todos se pueden considerar seguros, 2 de ellos los provee Drupal y los otros 2 necesitan de la herramienta de CLI Drush.
Os recomiendo que veáis el video por si tenéis dudas con alguno de los métodos para cambiar la contraseña.
Formulario de recuperar contraseña
El primero es utilizando el método de recuperar la contraseña con el formulario de restaurarla vía email, este seguramente muchos lo hayan utilizado, pero en caso de que no recordéis el email, podéis cambiar el email en la tabla “users_field_data” y entonces ya utilizar el formulario sin más problemas.
Utilizando el script password hash
Drupal nos provee un script sh para que podamos hashear nosotros mismos la contraseña de manera sencilla y después reemplazarla en la base de datos. Ese script esta en web/core/scripts y se llama password-hash.sh, podemos ejecutarlo de la siguiente manera:
$ web/core/scripts/password-hash.sh “nueva_contraseña”
El script nos devolverá la contraseña hasheada y podremos reemplazar la actual en la tabla “users_field_data”, en la columna “pass”, de esa manera, ya tendremos la contraseña cambiada de manera manual y podremos iniciar sesión de manera normal utilizando la nueva contraseña.
Cambiar la contraseña con Drush
Drush es una CLI muy útil, y prueba de ello es que tiene comandos para muchas tareas. Entre todos esos comandos existe uno el cual nos permite cambiar directamente la contraseña de un usuario, el que nosotros queramos.
Primero tenemos que añadir Drush a nuestro proyecto, es obligatorio hacerlo con composer:
$ composer require drush/Drush
Cuando ya lo tengamos, podemos utilizar el comando “user:password” para cambiar la contraseña del usuario que queramos:
$ drush user:password nombre_usuario “nueva_contraseña”
Y ya está, Drush nos cambiara la contraseña por la nueva que le hayamos indicado y podremos iniciar sesión sin problemas.
Enlace de inicio de sesión con Drush
Este es mi método favorito, y el que siempre utilizo, y es que drush tiene un comando que nos da un enlace para iniciar sesión automáticamente, son el mismo, pero "uli" es un alias:
$ drush uli
$ drush user:login
Es mi favorito porque es muy rápido de escribir, y da un enlace que se puede utilizar rápidamente iniciándonos sesión automáticamente. Además, una vez iniciada la sesión, podemos cambiar la contraseña ya que nos ubica en el formulario de edición de usuario.
Si ejecutamos el comando de Drush sin indicar un usuario, siempre lo hará con el usuario 1, el super admin, podemos indicar el usuario que queramos utilizando el nombre o email, para ello tenemos que indicar un parámetro adicional:
$ drush uli --name=admin
$ drush uli --mail=demo@escueladrupal.com
Y ya está, estos son los cuatro métodos que existen para recuperar contraseña en Drupal, pueden parecer molestos de usar, pero realmente, es por seguridad
Me metí en la aventura de Drupal con la versión 6, y aquí estoy, 10 años después, escribiendo articulos y haciendo videos sobre Drupal, quien me lo iba a decir. Aunque he probado otros framworks y cms, me quedo con Drupal de lejos, pero Symfony y Django estan entre mis favoritos. Aficionado a la montaña, la bicicleta, y el comer, de eso que no falte.