【发布时间】:2015-11-05 22:03:26
【问题描述】:
我使用 Joomla 开发了一个网站,但它发展得如此之快,以至于我疯狂地尝试添加新功能。 这就是为什么我想在 ruby on rails 中重做整个事情。 但我现在主要关心的是如何将所有用户移动到新的 Rails 应用程序并让他们保留密码。我希望迁移尽可能顺利,并且我希望避免要求用户更改密码。 有人对如何实现这一目标有任何想法吗?
【问题讨论】:
标签: ruby-on-rails devise joomla3.0
我使用 Joomla 开发了一个网站,但它发展得如此之快,以至于我疯狂地尝试添加新功能。 这就是为什么我想在 ruby on rails 中重做整个事情。 但我现在主要关心的是如何将所有用户移动到新的 Rails 应用程序并让他们保留密码。我希望迁移尽可能顺利,并且我希望避免要求用户更改密码。 有人对如何实现这一目标有任何想法吗?
【问题讨论】:
标签: ruby-on-rails devise joomla3.0
我没有任何代码给你,但你可以采用以下策略:
在您的用户表中,添加一列以指示密码的散列机制。因此,所有迁移的用户都将拥有joomla,而新用户将默认为devise。然后,每当用户尝试登录时,您将查询用户名并使用数据库中指示的任何散列机制对其密码进行散列。如果您希望最终将它们全部迁移,那么在成功登录后,您可以使用新的散列机制(由 Devise 实现的)重新散列他们输入的密码,并在数据库中更新他们的密码散列和散列机制。
从另一个问题来看:Joomla 3.2.1 password encryption,Joomla 3.x 使用使用 bcrypt 的 phpass。这是个好消息,因为 devise 还使用 bcrypt 来加密密码!我将验证您的 Joomla 表中的密码是否已使用 bcrypt 加密,然后迁移就是将密码逐字复制到设计用户表的简单任务。
【讨论】: