title: Make session expiration redirect back to login?
body: <p>When user logs in and is authenticated, I use <code>Auth::user()-&gt;username;</code> to show username of user on dashboard. However, for some reason when session expires the class <code>Auth</code> doesn't seem to work and dashboard page throws error as <code>trying to get property of non-object</code> for <code>Auth::user()-&gt;username;</code>. How can I redirect the user back to the login page when he clicks any link or refreshes the page after the session has expired?</p>
  
  <p>I tried the Authenticate.php  middleware but it always redirects back to login page,whatever you put the credentials either correct or incorrect.However,when I don't use this middleware it logins the user.Am I missing something?</p>
  
  <p>Route.php</p>
  
  <pre><code>    &lt;?php
  
  /*
  |--------------------------------------------------------------------------
  | Application Routes
  |--------------------------------------------------------------------------
  |
  | Here is where you can register all of the routes for an application.
  | It's a breeze. Simply tell Laravel the URIs it should respond to
  | and give it the controller to call when that URI is requested.
  |
  */
  
  /*
  Actions Handled By Resource Controller
  
  Verb        Path                    Action      Route Name
  GET         /photo                  index       photo.index
  GET         /photo/create           create      photo.create
  POST        /photo                  store       photo.store
  GET         /photo/{photo}          show        photo.show
  GET         /photo/{photo}/edit     edit        photo.edit
  PUT/PATCH   /photo/{photo}          update      photo.update
  DELETE      /photo/{photo}          destroy     photo.destroy
  
  
  Adding Additional Routes To Resource Controllers
  
  If it becomes necessary to add additional routes to a resource controller beyond the default resource routes, you should define those routes before your call to Route::resource:
  
  Route::get('photos/popular', 'PhotoController@method');
  
  Route::resource('photos', 'PhotoController');
  
  */
  
  // Display all SQL executed in Eloquent
  // Event::listen('illuminate.query', function($query)
  // {
  //     var_dump($query);
  // });
  
  
  
  define('ADMIN','admin');
  define('SITE','site');
  
  
  Route::group(['namespace' =&gt; ADMIN], function () {
      Route::get('/','UserController@showLogin'); 
  });
  
  
  ////////////////////////////////////Routes for backend///////////////////////////////////////////////////
  Route::group(['prefix' =&gt; ADMIN,'middleware' =&gt; 'auth'], function () {
      Route::group(['namespace' =&gt; ADMIN], function () {
      //Route::get('/','EshopController@products');
  
          //sumit routes for user registration
          //Route::resource('users','UserController');
          Route::get('/users/destroy/{id}','UserController@destroy');
          Route::get('UserProf','UserController@userProf');
          Route::get('users','UserController@index');
          Route::get('/users/create','UserController@create');
          Route::get('/users/adminEdit/{id}','UserController@adminEdit');
          Route::post('/users/adminUpdate','UserController@adminUpdate');
          Route::post('/users/store','UserController@store');
          Route::get('/users/edit/{id}','UserController@edit');
          Route::post('/users/update/{id}','UserController@update');
  
          //airlines route
          Route::get('airlines','AirlinesController@index');
          Route::get('/airlines/create','AirlinesController@create');
          Route::post('/airlines/store','AirlinesController@store');
          Route::get('/airlines/edit/{id}','AirlinesController@edit');
          Route::post('/airlines/update','AirlinesController@update');
          Route::get('/airlines/destroy/{id}','AirlinesController@destroy');
          //end sumit routes
  
          //flight routes
          Route::get('flights','FlightController@index');
          Route::get('showFlightBook','FlightController@showFlightBook');
          Route::get('flights/create','FlightController@create');
          Route::post('flights/store','FlightController@store');
          Route::get('flights/book','FlightController@book');
          Route::get('flights/edit/{id}','FlightController@edit');
          Route::post('flights/update','FlightController@update');
          Route::get('flights/destroy/{id}','FlightController@destroy');
  
          //Route::resource('flight','FlightController');
  
          //hotels route
          Route::get('hotels','HotelsController@index');
          Route::get('/hotels/create','HotelsController@create');
          Route::post('/hotels/store','HotelsController@store');
          Route::get('/hotels/edit/{id}','HotelsController@edit');
          Route::post('/hotels/update','HotelsController@update');
          Route::get('/hotels/destroy/{id}','HotelsController@destroy');
          //end sumit routes
  
          //book-hotel routes
          Route::get('hotel-book','HotelBookController@index');
          Route::get('showHotelBook','HotelBookController@showHotelBook');
          Route::get('hotel-book/create','HotelBookController@create');
          Route::post('hotel-book/store','HotelBookController@store');
          Route::get('hotel-book/book','HotelBookController@book');
          Route::get('hotel-book/edit/{id}','HotelBookController@edit');
          Route::post('hotel-book/update','HotelBookController@update');
          Route::get('hotel-book/destroy/{id}','HotelBookController@destroy');
  
  
          //Route::resource('hotel','HotelController');
          //close flight routes
  
  
          //for admin login
          //Route::get('initlogin','UserController@lgnPage');
          Route::get('login','UserController@showLogin');
          // Route::get('privilegeLogin','UserController@privilegeLogin');
          // Route::post('privilegeCheck','UserController@privilegeCheck');
          Route::post('login','UserController@doLogin');
          Route::get('/dashboard','DashController@index');
          Route::get('logout','UserController@doLogout');
          //user login 
          //Route::get('userLogin','UserController@showUserLogin');
          //Route::post('userLogin','UserController@doUserLogin');
          Route::get('/userDashboard','DashController@userIndex');
          Route::get('Logout','UserController@doUserLogout');
          //password reset
          Route::get('forget-pass','UserController@showReset');
          //Route::get('home', 'PassResetEmailController@index');
  
  
  
  
  
  
    });   
  });
  
  Route::controllers([
      'auth' =&gt; 'Auth\AuthController',
      'password' =&gt; 'Auth\PasswordController',
  ]);
  </code></pre>
  
  <p>Authenticate.php:</p>
  
  <pre><code>    &lt;?php namespace App\Http\Middleware;
  
  use Closure;
  use Illuminate\Contracts\Auth\Guard;
  
  class Authenticate {
  
      /**
       * The Guard implementation.
       *
       * @var Guard
       */
      protected $auth;
  
      /**
       * Create a new filter instance.
       *
       * @param  Guard  $auth
       * @return void
       */
      public function __construct(Guard $auth)
      {
          $this-&gt;auth = $auth;
      }
  
      /**
       * Handle an incoming request.
       *
       * @param  \Illuminate\Http\Request  $request
       * @param  \Closure  $next
       * @return mixed
       */
      public function handle($request, Closure $next)
      {
          if ($this-&gt;auth-&gt;guest())
          {
              if ($request-&gt;ajax())
              {
                  return response('Unauthorized.', 401);
              }
              else
              {
                  // return redirect()-&gt;guest('auth/login');
                  return redirect()-&gt;guest('/');
              }
          }
  
          return $next($request);
      }
  
  }
  </code></pre>