Я разработал веб-сайт с Joomla, но он вырос настолько, что я схожу с ума, пытаясь добавить новые функции. Вот почему я хочу переделать все это в ruby on rails. Но сейчас меня больше всего волнует, как перевести всех пользователей в новое приложение rails и позволить им сохранить свои пароли. Я хотел бы, чтобы миграция прошла как можно более плавно, и мне не хотелось бы просить пользователей сменить пароль. Есть ли у кого-нибудь идеи о том, как этого добиться?
Перенос пользователей с Joomla на Ruby On Rails + разработка и сохранение паролей
Ответы:
Джумла 1.х и 2.х
У меня нет для вас кода, но вы можете использовать следующую стратегию:
В пользовательской таблице добавьте столбец, указывающий механизм хеширования пароля. Таким образом, у всех перенесенных пользователей будет joomla
, а у новых пользователей по умолчанию будет devise
. Затем всякий раз, когда пользователь пытается войти в систему, вы будете запрашивать имя пользователя и хешировать его пароль с помощью любого механизма хеширования, указанного в базе данных. Если вы хотите в конечном итоге перенести их все, то после успешного входа в систему вы можете перефразировать введенный ими пароль с помощью вашего нового механизма хеширования (тот, который реализован Devise) и обновить их хэш пароля и механизм хеширования в базе данных.
Джумла 3.х
Судя по этому другому вопросу: шифрование паролей Joomla 3.2.1, Joomla 3. x использует phpass, который использует bcrypt. Это хорошая новость, потому что devise также использует bcrypt для шифрования паролей! Я бы проверил, что пароли в ваших таблицах Joomla зашифрованы с помощью bcrypt, а затем миграция будет простой задачей копирования паролей дословно в таблицу пользователей devise.