Wie man das Passwort für Benutzer in der PostgreSQL-Datenbank zurücksetzt

Hallo zusammen,

wir haben einige Fragen dazu, wie man Passwörter für Benutzer in Discourse zurücksetzt.
Wir wissen, dass der Befehl „RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create“ das Passwort für bestehende Benutzer zurücksetzen oder einen neuen Admin-Benutzer erstellen kann. Aber wir möchten das Passwort für den Admin-Benutzer nicht auf diese Weise zurücksetzen. Wir möchten Passwörter für Benutzer in der PostgreSQL-Datenbank zurücksetzen.
Die Benutzerinformationen werden in der Tabelle „users“ in der PostgreSQL-Datenbank gespeichert. Und wir können die Benutzer und Passwörter mit „select id, username, name, password_hash from users;“ überprüfen. Wir haben also zwei Fragen.

  1. Wie wird das Passwort verschlüsselt? MD5? Sha256?
  2. Können wir das Passwort mit „ UPDATE users SET password_hash = ‚there is a hash password‘ WHERE id=1; “ zurücksetzen?

Wenn jemand eine Idee hat, wäre das sehr hilfreich, danke!

Welches Problem lösen Sie? Warum sollten sie nicht den Link zum Zurücksetzen des Passworts verwenden und es selbst festlegen?

Ich würde es eher über die Rails-Konsole als über SQL tun. Ich müsste den Quellcode prüfen, um den Code zu erhalten.

1 „Gefällt mir“

Vom Rails-Konsolen-Befehl:

User.find_by(username: 'gollum').update!(password: 'shiiiire!-BAGGINS!')
3 „Gefällt mir“

@supermathie , vielen Dank!
Wir können das Passwort zurücksetzen mit

RAILS_ENV=production rails runner 'User.find_by_email("admin@example.com").update!(password:"AdminAdmin1234566xxxxxx")'
2 „Gefällt mir“