【问题标题】:Custom user auth in LaravelLaravel 中的自定义用户身份验证
【发布时间】:2014-02-04 05:16:50
【问题描述】:

我正在迁移 Laravel 中的 Drupal6 项目,因此我需要在 MD5 中使用带有密码的“旧”Drupal6 用户表。 有没有办法在不修改核心 Laravel 文件的情况下修改对 Auth 的调用,在 md5 中传递密码?

我愿意:

$userdata = array(
   'mail'   => Input::get('email'),
'password'  => Input::get('password')
);
if (Auth::attempt($userdata)) {
    //OK
}
else {
   //KO
}

如何在 Laravel 中处理自定义用户身份验证?

【问题讨论】:

    标签: authentication laravel laravel-4


    【解决方案1】:

    不,但您可以轻松地自己进行身份验证:

    $user = User::where('email', Input::get('email'))->first();
    
    if( $user && $user->password == md5(Input::get('password')) )
    {
        Auth::login($user); /// will log the user in for you
    
        return Redirect::intended('dashboard');
    }
    else
    {
       /// User not found or wrong password
    }
    

    【讨论】:

    • 另外,您不应该使用 MD5。它不再是存储密码的安全方式。考虑将旧的 MD5 哈希转换为 Laravel 使用的格式(Bcrypt)。这个答案正是您所需要的,并且实现起来非常简单:stackoverflow.com/a/19880068/845680
    • 我对这个解决方案有一个问题。 {{ Auth::check() }} 在我的刀片中返回 false,在控制器中返回 true..
    猜你喜欢
    • 2015-02-23
    • 1970-01-01
    • 2014-03-30
    • 2016-04-18
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    相关资源
    最近更新 更多