Il sistema di authentication di Laravel può utilizzare un database esistente?

Sto sviluppando un pannello di amministrazione in PHP con il framework Laravel. Alcuni dei front-end sono già fatti. Detto questo, il database e la tabella utente sono già stati creati e hanno contenuto. C'è un modo per usare il mio database e tabella esistenti con la class Auth di Laravel?

Il mio database ha il proprio modo di crittografare le password – Laravel può adattarsi a questo?

Puoi fare l'auth direttamente, se ti serve:

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

Nota che le password hash di Laravel sono davvero sicure e quelle con hash, diciamo, con MySQL, sono l'opposto. Così puoi convertire le tue password each volta che il tuo utente registra, senza chiedergli di farlo:

 $password = Input::get('password'); $email = Input::get('email'); if (Auth::attempt(arrays('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 } 

Seguendo i consigli di Antonio Carlos Ribeiro (Grazie uomo!), Ecco come l'ho gestito per Laravel 5.2:

  • In Http/Controllers/Auth/AuthController.php , copia e incolla il metodo login() da vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticateUsers.php
  • Aggiungi questi nella parte superiore del file:

    • use Illuminate\Support\Facades\Auth as fAuth;
    • use Hash;
  • Sostituisci questo:

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

    Da questo :

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