2016-02-13 9 views
5

Ich möchte Gast Benutzer Zugriff auf die Homepage haben, aber in der Authentifizierung Authentifizierungsprozess Laravel Weiterleitungen zur Anmeldeseite. Wie kann ich Gastbenutzer Zugriff auf die Startseite geben?Web-Middleware für bestimmte Routen in Laravel deaktivieren 5.2

mein routes.php:

Route::group(['middleware' => 'web'], function() { 
Route::auth(); 

Route::get('/', '[email protected]'); 

Route::get('/insert', '[email protected]'); 
Route::get('/job/{id}', '[email protected]'); 

Route::get('/city/{city}', '[email protected]'); 

Route::post('/insert', '[email protected]'); 
Route::get('/cityinsert', '[email protected]'); 
Route::post('/cityinsert', '[email protected]'); 

}); 

und authenticate.php

class Authenticate 
{ 
/** 
* Handle an incoming request. 
* 
* @param \Illuminate\Http\Request $request 
* @param \Closure $next 
* @param string|null $guard 
* @return mixed 
*/ 
public function handle($request, Closure $next, $guard = null) 
{ 
    if (Auth::guard($guard)->guest()) { 
     if ($request->ajax()) { 
      return response('Unauthorized.', 401); 
     } else { 
      return redirect()->guest('login'); 
     } 
    } 

    return $next($request); 
} 
} 

und das ist mein kernel.php

class Kernel extends HttpKernel 
{ 
/** 
* The application's global HTTP middleware stack. 
* 
* These middleware are run during every request to your application. 
* 
* @var array 
*/ 
protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
]; 

/** 
* The application's route middleware groups. 
* 
* @var array 
*/ 
protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \App\Http\Middleware\VerifyCsrfToken::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
    ], 
]; 

/** 
* The application's route middleware. 
* 
* These middleware may be assigned to groups or used individually. 
* 
* @var array 
*/ 
protected $routeMiddleware = [ 
    'auth' => \App\Http\Middleware\Authenticate::class, 
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 
]; 
} 
+0

Ihren Kernel zeigen .php auch –

+0

Ich habe die Kernel-Datei –

Antwort

6

die Middleware von Homecontroller Konstrukt entfernen:

class HomeController extends Controller 
{ 
    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     //$this->middleware('auth'); 
    } 
} 
9

Fügen Sie eine Ausnahme in der Middleware-Deklaration in dem Konstrukt

Route::get('/', '[email protected]'); 

für die obige Route von Authentifizierung ausgenommen werden Sie die Funktionsnamen wie an die Middleware passieren sollten unter

class HomeController extends Controller 
{ 
    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('auth', ['except' => 'index']); 
    } 
} 
+0

Ok auf Laravel 5.2 –

+0

Ok auf Laravel 5.5 auch hinzugefügt –