我必须将一个项目从CI迁移到Laravel。该项目使用Ben Edmunds的Ion Auth(http://benedmunds.com/ion_auth/)。问题是是否可以保留旧用户密码(因此旧用户不必恢复其密码)。在Ion Auth的配置文件中,将sha1设置为哈希方法
$config['hash_method'] = 'sha1';
答案 0 :(得分:2)
你应该做的是这样的事情(半伪代码 - 未经测试 - 但你明白了):
login()
{
$password = Input::get('password');
$user = User::where('email', '=', Input::get('email');
if (sha1($password) == $user->password)
{
// User old password matches - so now lets re-hash the password as bcrypt
$user->password = Hash::make($password);
}
... do rest of authentication normally
}
基本上在执行正常的Laravel登录之前,请检查sha1()旧密码是否匹配,如果匹配,则将原始密码转换为Laravel使用的bcrypt哈希值。
这允许您在没有任何密码重置的情况下迁移用户。
答案 1 :(得分:2)
由于Ion Auth没有使用直接的sha1哈希,因此不会发生这种情况。您可以查看模型以查看散列算法,然后您只想在Laravel中复制它。
要寻找的主要方法是检查您的配置,看看您是否使用SHA1或BCrypt,因为Ion Auth支持两者。