我有一个1.5 Joomla网站,我计划重新编写为Ruby On Rails网站。 有大约300个注册用户,是否有一种简单的方法来迁移我的用户帐户以设计基于宝石的帐户?
答案 0 :(得分:3)
我知道这已经过时了,但是遇到了这个,后来又找到了答案,所以我会为其他人发帖。
joomla中的密码字段是密码的md5和随机生成的盐加上冒号和随机生成的盐。
它看起来像这样:
33da105d239879dae4cdaf58557985c:L8QwPXN02cltv0lkGIyD3JRDU0AR5fcA
所以回到它......
1)查询数据库的用户名(由用户发布)
user = User.find_by_username(params[:username])
2)然后拆分密码并获取数组中的第二个元素:
salt = user.password.split(":")[1]
3)获取密码(由用户发布),加上盐并检查数据库中的那个
user.password == Digest::MD5.hexdigest(params[:password] + salt).to_s + ":" + salt
如果您拥有正确的用户/通行证组合,那么它应该是真的......
答案 1 :(得分:1)
我通过这种方式进行类似的迁移:
使用旧密码哈希和salt的附加字段创建设计模型用户
将旧数据库中的所有用户复制到新数据库中(新密码哈希将为空,因为我们不知道实际用户的通行证)
补丁验证方法 - 当用户尝试使用帐号登录而没有新的传递散列(这意味着这是旧用户) - 我们通过旧的auth算法验证他,如果它通过,我们创建他的密码新传递哈希(使用设计)