В моем приложении на Rails я периодически требую, чтобы пользователь повторно вводил свой пароль после определенного периода бездействия - как в случае с sudo в Linux.Мое приложение использует Authlogic для аутентификации и обработки хранения и шифрования паролей.
Мне нужен какой-то метод для шифрования пароля, который вводит пользователь, с использованием точно такой же схемы шифрования, которую использует Authlogic для шифрования паролей при проверке паролей во время аутентификации.Мне нужно 1) зашифровать пароль, который вводит пользователь, и 2) выполнить сравнение строк между этим шифрованием и зашифрованным паролем, хранящимся в базе данных для пользователя.
Где я должен поместить метод для выполнения этого шифрования?Вот некоторые идеи:
Идея 1 (в новом, пользовательском модуле)
module PasswordCryption
include Authlogic::ActsAsAuthentic::Password
encrypt_password(password)
end
end
Идея 2 (в модели пользователя)
class User
acts_as_authentic <---- makes Authlogic password encryption functionality available
encrypt_password(password)
end
end