كيفية إعادة تعيين كلمة المرور للمستخدمين في قاعدة بيانات PostgreSQL

مرحباً بالجميع،

لدينا بعض الأسئلة حول كيفية إعادة تعيين كلمة المرور للمستخدمين في discourse.
نحن نعلم أن الأمر “RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create” يمكنه إعادة تعيين كلمة المرور للمستخدمين الحاليين أو إنشاء مستخدم مسؤول جديد. لكننا لا نريد إعادة تعيين كلمة المرور لمستخدم المسؤول باستخدام هذه الطريقة. نريد إعادة تعيين كلمة المرور للمستخدمين في قاعدة بيانات PostgreSQL.
يتم تخزين معلومات المستخدم في جدول المستخدمين في قاعدة بيانات postgresql. ويمكننا التحقق من المستخدمين وكلمة المرور باستخدام “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; "؟

إذا كان لدى أي شخص فكرة فسيكون ذلك مفيدًا للغاية، شكرًا!

ما المشكلة التي تحلها؟ لماذا لا تجعلهم يستخدمون رابط إعادة تعيين كلمة المرور ويضبطونها بأنفسهم؟

سأفعل ذلك من وحدة تحكم Rails بدلاً من SQL. سأضطر إلى النظر في المصدر للحصول على الرمز.

إعجاب واحد (1)

من وحدة تحكم rails:

User.find_by(username: 'gollum').update!(password: 'shiiiire!-BAGGINS!')
3 إعجابات

، @supermathie شكراً جزيلاً لك!
يمكننا إعادة تعيين كلمة المرور عن طريق

RAILS_ENV=production rails runner 'User.find_by_email("admin@example.com").update!(password:"AdminAdmin1234566xxxxxx")'
إعجابَين (2)