Li_Bruce
(Li Bruce)
1
大家好,
我们有一些关于如何在 Discourse 中重置用户密码的问题。
我们知道命令“RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create”可以重置现有用户的密码或创建新的管理员用户。但我们不想通过此方法重置管理员用户的密码。我们想重置 PostgreSQL 数据库中用户的密码。
用户信息存储在 PostgreSQL 数据库的 users 表中。我们可以使用“select id, username, name, password_hash from users;”来检查用户和密码。所以我们有两个问题。
1)密码是如何加密的?MD5?Sha256?
2)我们可以使用“UPDATE users SET password_hash = ‘there is a hash password’ WHERE id=1;”来重置密码吗?
如果有人有想法,将非常有帮助,谢谢!
pfaffman
(Jay Pfaffman)
2
您在解决什么问题?为什么不让他们使用重置密码链接自行设置呢?
我会在 rails 控制台而不是 SQL 中进行操作。我需要查看源代码来获取代码。
1 个赞
从 rails 控制台:
User.find_by(username: 'gollum').update!(password: 'shiiiire!-BAGGINS!')
3 个赞
Li_Bruce
(Li Bruce)
4
@supermathie ,非常感谢!
我们可以通过以下方式重置密码:
RAILS_ENV=production rails runner 'User.find_by_email(\"admin@example.com\").update!(password:\"AdminAdmin1234566xxxxxx\")'
2 个赞