Cómo restablecer la contraseña de los usuarios en la base de datos PostgreSQL

Hola a todos,

Tenemos algunas preguntas sobre cómo restablecer la contraseña de los usuarios en Discourse.
Sabemos que el comando “RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create” puede restablecer la contraseña de los usuarios existentes o crear un nuevo usuario administrador. Pero no queremos restablecer la contraseña del usuario administrador usando este método. Queremos restablecer la contraseña de los usuarios en la base de datos PostgreSQL.
La información del usuario se almacena en la tabla users en la base de datos PostgreSQL. Y podemos verificar los usuarios y la contraseña usando “select id, username, name, password_hash from users;”. Así que tenemos dos preguntas.

  1. ¿Cómo se cifra la contraseña? ¿MD5? ¿Sha256?
  2. ¿Podemos restablecer la contraseña usando " UPDATE users SET password_hash = ‘there is a hash password’ WHERE id=1; "?

Si alguien tiene una idea, sería de gran ayuda, ¡gracias!

¿Qué problema estás resolviendo? ¿Por qué no hacer que usen el enlace de restablecimiento de contraseña y lo configuren ellos mismos?

Lo haría desde la consola de Rails en lugar de SQL. Tendría que mirar el código fuente para obtener el código.

1 me gusta

Desde la consola de Rails:

User.find_by(username: 'gollum').update!(password: 'shiiiire!-BAGGINS!')
3 Me gusta

@supermathie , ¡muchas gracias!
Podemos restablecer la contraseña mediante

RAILS_ENV=production rails runner 'User.find_by_email("admin@example.com").update!(password:"AdminAdmin1234566xxxxxx")'
2 Me gusta