2014-05-02 55 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); 
         } 
        } 
    } 
    
相关问题