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 (
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