Laravel Auth-使用md5代替集成的Hash :: make()

问题描述 投票:9回答:1

所以,我要切换到我网站的laravel。我的旧网站目前拥有约500个用户。每个用户都有一个附加的md5哈希作为密码(duh ^^)。

当我切换到laravel时,我希望使用Auth :: attempt不幸的是,它使用自己的方法来哈希密码字符串。我不希望所有用户都更改密码,因为我要切换到laravel,是否可以使Auth类使用md5代替,所以我的用户不必切换密码? :)

如果是,有人可以告诉我如何?

php laravel laravel-5 hash laravel-4
1个回答
35
投票

MD5太过时了。我建议您不要尝试保留它。相反,当用户首次登录且Auth::attempt失败时,您应该尝试将其密码与MD5进行比较以将其与数据库进行比较

$user = User::where('username', '=', Input::get('username'))->first();

if(isset($user)) {
    if($user->password == md5(Input::get('password'))) { // If their password is still MD5
        $user->password = Hash::make(Input::get('password')); // Convert to new format
        $user->save();
        Auth::login(Input::get('username'));
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.