2014-05-02 54 views
2

我正在用Laravel框架在PHP中開發管理面板。一些前端已經制作完成。這就是說,數據庫和用戶表已經被創建並且具有內容。有什麼方法可以使用我的現有數據庫和Laravel Auth類的表?Laravel認證系統可以使用現有的數據庫嗎?

我的數據庫有它自己的密碼加密方式 - 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 
} 

注意,通過Laravel哈希密碼是真正安全的,那些散列,讓我們說,MySQL的,則相反。所以,你可以每次用戶登錄時將您的密碼,不問他這樣做:(!感謝的人)

$password = Input::get('password'); 

$email = Input::get('email'); 

if (Auth::attempt(array('email' => $email, 'password' => $password))) 
{ 
    return Redirect::intended('dashboard'); 
} 
else 
if($user && $user->password == md5($password)) 
{ 
    Auth::user()->password = Hash::make($password); 

    Auth::user()->save(); 

    return Redirect::intended('dashboard'); 
} 
else 
{ 
    /// User not found or wrong password 
} 
+0

這需要我創造我自己的用戶模式,對不對? – Hedam

+0

你還沒有?您不一定需要用戶模型,您需要一個模型來檢查用戶名和密碼,如果您將其稱爲Customer或Editor,則不會有任何區別。 –

1

繼安東尼奧·卡洛斯·裏貝羅的意見,這裏是我如何管理它Laravel 5.2:

  • Http/Controllers/Auth/AuthController.php,複製並粘貼vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticateUsers.php
  • login()方法在文件的頂部添加這些:

    • use Illuminate\Support\Facades\Auth as fAuth;
    • use Hash;
  • 替換此:

    if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) { 
        return $this->handleUserWasAuthenticated($request, $throttles); 
    } 
    

    通過這樣的:

    if (fAuth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) { 
        return $this->handleUserWasAuthenticated($request, $throttles); 
    } else { 
        $user = User::where('email', $request->email)->first(); 
        if ($user && $user->password == md5($request->password)) { 
         $user->password = Hash::make($request->password); 
         $user->save(); 
    
         if (fAuth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) { 
          return $this->handleUserWasAuthenticated($request, $throttles); 
         } 
        } 
    } 
    
相關問題