Como redefinir senha para usuários no banco de dados PostgreSQL

Olá a todos,

Temos algumas perguntas sobre como redefinir a senha de usuários no Discourse.
Sabemos que o comando “RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create” pode redefinir a senha de usuários existentes ou criar um novo usuário administrador. Mas não queremos redefinir a senha do usuário administrador usando este método. Queremos redefinir a senha de usuários no banco de dados PostgreSQL.
As informações do usuário são armazenadas na tabela users no banco de dados PostgreSQL. E podemos verificar os usuários e senhas usando “select id, username, name, password_hash from users;”. Portanto, temos duas perguntas.

  1. Como a senha é criptografada? MD5? Sha256?
  2. Podemos redefinir a senha usando " UPDATE users SET password_hash = ‘there is a hash password’ WHERE id=1; "?

Se alguém tiver uma ideia, seria muito útil, obrigado!

Que problema você está resolvendo? Por que não fazer com que eles usem o link de redefinição de senha e definam-na eles mesmos?

Eu faria isso a partir do console do Rails em vez de SQL. Eu teria que olhar o código-fonte para obter o código.

1 curtida

Do console do Rails:

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

@supermathie , muito obrigado!
Podemos redefinir a senha por meio de

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