Может ли система авторизации Laravel использовать существующую базу данных?

Я разрабатываю панель администратора на PHP с помощью рамки Laravel. Некоторые из передней части уже сделаны. С учетом сказанного, база данных и пользовательская таблица уже созданы и имеют контент. Есть ли способ использовать мою существующую базу данных и таблицу с классом Laravel Auth?

У моей базы данных есть собственный способ шифрования паролей – может ли Laravel адаптироваться к этому?

Вы можете сделать auth напрямую, если вам нужно:

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

Следуя советам Антонио Карлоса Рибейро (спасибо человеку!), Вот как я справился с этим для Laravel 5.2:

  • В Http/Controllers/Auth/AuthController.php скопируйте и вставьте метод login() из vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticateUsers.php
  • Добавьте их в верхнюю часть файла:

    • 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); } } }