2014-01-15 55 views
0

我正在Laravel中遷移Drupal6項目,因此我需要在MD5中使用帶有密碼的「舊」Drupal6用戶表。 有沒有辦法在不修改核心Laravel文件的情況下將調用修改爲通過md5傳遞密碼的Auth?Laravel中的自定義用戶身份驗證

我做的:

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

我該如何處理在Laravel自定義用戶身份驗證?

回答

3

沒有,但你可以輕鬆地做自己的身份驗證:

$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 
} 
+1

此外,你不應該使用MD5。這不再是一種安全的存儲密碼的方式。考慮將舊的MD5哈希轉換爲Laravel使用的格式(Bcrypt)。這個答案正是你所需要的,並且實現起來非常簡單:http://stackoverflow.com/a/19880068/845680 – berrberr

+0

太好了,非常感謝你! – Cris

+0

我有這個解決方案的一個問題。 {{Auth :: check()}}在我的刀片中返回false,在Controller中返回true。 –