2017-11-03 3 views
0

Ich baue eine API und ich bin wirklich hier stecken versuchen, herauszufinden, wie man Benutzer ohne Berechtigungen auf bestimmte Ressource zu blockieren, habe ich bereits eine Tabelle Benutzer, Rollen, role_user, Berechtigungen und role_permissions erstellt. wenn ich auf Google suchte, sah ich mehrere Möglichkeiten, es zu tun, mit Gate innerhalb AuthServiceProvider, oder mit Middleware. meine Frage ist: Was ist der beste Weg, es in Laravel mit API zu tun? In meiner Firma können die Benutzer eine oder mehrere Rollen haben, und die Benutzer können auch eine individuelle Erlaubnis haben. Außerdem haben einige ACL-Pakete versucht, aber alle haben einige spezifische Probleme, wie: einige Methoden sind in Laravel 5.5 veraltet, oder Dokumente sind nicht klar, wie man die Klasse benutzt. Ich habe versucht, die Logik selbst zu tun, aber ich bin in der Frage stecken, wie man den Zugang zu der Ressource blockiert, wenn der Benutzer keine Erlaubnis gegeben hat.wie man einen Benutzer ohne Erlaubnis zu einer Ressource in Laravel blockiert?

+0

was mit der Verwendung einer Middleware falsch? – madalinivascu

+0

Sie können das https://cartalyst.com/manual/sentinel/2.0#permissions Paket überprüfen. –

+0

Ich habe kein Problem mit Middlewares, mein Problem ist die Logik zu bauen, um die Ressource zu blockieren, wenn die Erlaubnis der Ressource URL entspricht –

Antwort

0

Laravel es selbst blockiert den Zugriff für jede Ressource aus dem öffentlichen Ordner (Storage Folder). Zusätzlich können Sie eine Middleware erstellen, die den Benutzer, der die Route anfordert, überprüft und entscheidet, die Ressource zurückzugeben oder nicht.

0

Sie können eine Middleware für diesen Zweck verwenden. Kasse https://laravel.com/docs/5.5/middleware für weitere Informationen

Sobald Sie die Middleware erstellt haben, können Sie tun:

Route::group(['middleware'=>'yournewmiddlewarename'], function() { 
    Route::resource("url", ...); 
} 
Verwandte Themen