2017-10-28 4 views
0

Ich habe vor kurzem meine Authentifizierung zu Sentinel ändern und alles scheint neben dem folgenden Problem zu arbeiten: Wenn der Benutzer nicht authentifiziert ist, möchte ich ihn umleiten die Login-Seite, aber ich habe immer Fehler „den Versuch, Eigentum von nicht-Objekt zu erhalten“Laravel: "Versuch, Eigenschaft von Nicht-Objekt zu erhalten" bei Verwendung von Redirect in Middleware

ich mehr Standard-Middleware aus dem Kernel.php kommentiert habe:

protected $middlewareGroups = [ 
    'web' => [ 
     // \Illuminate\Session\Middleware\AuthenticateSession::class, 

protected $routeMiddleware = [ 
    // 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 
    // 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 
    // 'can' => \Illuminate\Auth\Middleware\Authorize::class, 
    // 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 

Und ich habe eine neue Middleware hinzugefügt von ich:

<?php 
namespace App\Http\Middleware; 
use Closure; 
use Sentinel; 
class AdminMiddleware 
{ 
    public function handle($request, Closure $next) 
    { 
     if (Sentinel::check()) 
     { 
      if (Sentinel::getUser()->roles()->first()->slug == 'admin' || 
       Sentinel::getUser()->roles()->first()->slug == 'superuser') 
      { 
       return $next($request); 
      } 
     } 
     else 
     { 
      return redirect('/login') 
      ->with(['error' => "You do not have the permission to enter this site. Please login with correct user."]); 
     } 
    } 
} 

Wenn der Benutzer angemeldet ist und ich die Anfrage zurücksende, funktioniert alles gut. Falls der Benutzer nicht angemeldet oder haben einen zu niedrigen Pegel, wird es ein Fehler ausgelöst, wenn die Umleitung ausgeführt wird:

„Der Versuch, Eigentum von Nicht-Objekt zu erhalten“

/var/www/Verkäufer/Laravel/Rahmen/src/Illuminate/Stiftung/Http/Middleware/VerifyCsrfToken.php $ response-> Kopfzeilen kann> setCookie (

+0

Mögliches Duplikat von [Login laravel Versuch, Eigenschaft von Nichtobjekt zu erhalten] (https://stackoverflow.com/questions/45209640/login-laravel-trying-to-get-property-of-non-object) – manniL

Antwort

2

Sie ein nicht anders da! verwenden sonst der Fall, dass Sentinel::check() gilt aber der Benutzer hat nicht die richtigen Nacktschnecken ist überhaupt nicht von einem Rückgabewert abgedeckt !.

Verwandte Themen