2016-07-22 16 views
0

Ich habe die eingebaute Authentifizierungsfunktion von Laravel eingerichtet, aber es verfügt nicht über einen Administrator. Ich habe nach Wegen gesucht, dies zu tun, aber viele Tutorials scheinen ein bisschen gewichtig zu sein. Ich wollte eine einfache, sichere Lösung, die die bereits vorhandene Benutzertabelle nutzt.Einfacher Admin-Benutzer mit Laravel 5.2 Authentifizierung

Ich habe auf diese sah: https://laracasts.com/discuss/channels/laravel/user-admin-authentication

Die Anweisungen von mehreren Benutzern kommen, und es ist ein bisschen schwer zu folgen. Ich habe eine Spalte "isAdmin" für meine Benutzerdatenbank eingerichtet. Ich habe eine Middleware für den Administrator, aber ich bin mir nicht sicher, wie ich von hier fortfahren soll.

Antwort

1

Wenn ich nichts vergesse, sollte das ausreichen.

Kernel.php:

protected $routeMiddleware = [ 
    //... 
    'isAdmin' => \App\Http\Middleware\IsAdminMiddleware::class, 
]; 

IsAdminMiddleware:

public function handle($request, Closure $next) 
{ 
    if(!\Auth::user()->isAdmin){ 
     return Redirect::route('index'); 
    } 

    return $next($request); 
} 

routes.php:

Route::group(['middleware' => ['auth', 'isAdmin']], function() { 
    Route::get('/', '[email protected]')->name('admin.index'); 
    Route::get('/add-user', '[email protected]')->name('admin.addUser'); 
}); 

Der faule Lösung, nicht zu empfehlen:

In Sie AdminController, fügen Sie die folgenden Schritte aus:

public function __construct(){ 
    if(!\Auth::user()->isAdmin){ 
     dd('Redirect user or whatever, this is where all but admin gets stucked'); 
    } 
} 
+0

Dies ist, was ich bekommen: FatalThrowableError in IsAdmin.php Linie 17: Class 'App \ Http \ Middleware \ Auth' nicht – Jubiki

+0

Verwenden Backslash vor Auth gefunden: : user() -> isAdmin. Ich habe das Beispiel aktualisiert. – SebHallin

+0

Es hat gut funktioniert, aber jetzt kann ich nicht auf die Seite zugreifen, die ich für Admins erstellt habe. Ich bin mir nicht sicher, ob ich erkenne, dass ich Admin bin? Meine Datenbanktabelle als boolesche Spalte für isAdmin. 1 für wahr und 0 für falsch, oder? Warum erkenne ich mich nicht als Admin? – Jubiki