Skip to content

Instantly share code, notes, and snippets.

@ozanmora
Forked from lucahate/LoginController.php
Created November 6, 2023 06:09
Show Gist options
  • Select an option

  • Save ozanmora/0040a332f8b439124ef1a145d74f6db6 to your computer and use it in GitHub Desktop.

Select an option

Save ozanmora/0040a332f8b439124ef1a145d74f6db6 to your computer and use it in GitHub Desktop.

Revisions

  1. @lucahate lucahate created this gist Nov 17, 2017.
    83 changes: 83 additions & 0 deletions LoginController.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,83 @@
    <?php

    namespace App\Http\Controllers\Auth;

    use App\Http\Controllers\Controller;
    use Illuminate\Foundation\Auth\AuthenticatesUsers;

    use Illuminate\Http\Request;
    use App\User;
    use Hash;

    class LoginController extends Controller
    {
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
    * Where to redirect users after login.
    *
    * @var string
    */
    protected $redirectTo = '/home';

    /**
    * Create a new controller instance.
    *
    * @return void
    */
    public function __construct()
    {
    $this->middleware('guest')->except('logout');
    }


    /**
    * Overwrite default login method to in order to allow user to use old MD5 Hash passwords
    * and migrate it without asking him any change
    */
    public function login(Request $request)
    {
    $this->validateLogin($request);

    // If the class is using the ThrottlesLogins trait, we can automatically throttle
    // the login attempts for this application. We'll key this by the username and
    // the IP address of the client making these requests into this application.
    if ($this->hasTooManyLoginAttempts($request)) {
    $this->fireLockoutEvent($request);

    return $this->sendLockoutResponse($request);
    }

    // check against old md5 password, if correct, create bcrypted updated pswd
    $user = User::where('email', $request->email)->first();

    if( $user && $user->password == md5($request->password) )
    {
    $user->password = Hash::make($request->password);
    $user->save();
    }


    if ($this->attemptLogin($request)) {
    return $this->sendLoginResponse($request);
    }

    // If the login attempt was unsuccessful we will increment the number of attempts
    // to login and redirect the user back to the login form. Of course, when this
    // user surpasses their maximum number of attempts they will get locked out.
    $this->incrementLoginAttempts($request);

    return $this->sendFailedLoginResponse($request);
    }
    }