können Sie verwenden Middleware wie:
Route::group([ 'middleware' => ['Admin', 'Clients', 'Employee'] ], function(){
Route::get('/Admin', '[email protected]');
Route::get('/Clients', '[email protected]');
Route::get('/Employee', '[email protected]');
});
Zum Beispiel habe ich ein Admin-Middleware, die, wenn der Benutzer-ID überprüft 1
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
use Log;
class AuthAdmin
{
private $admins; // Admin ids
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$this->admins = config('custom.admins'); // get configs
$user = Auth::user();
if($user->id != 1)){
// not admin, redirect home
return redirect('/');
}
// is admin, let request continue
return $next($request);
}
}
Dann haben Sie es zu Kernel.php hinzufügen " $ routeMiddleware ":
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
// Custom Middleware
// Auth Admin
'auth_admin' => \App\Http\Middleware\AuthAdmin::class,
];
Da ist in meiner Route:
Route::group([ 'middleware' => ['auth_admin'] ], function(){
// nobody can come to these routes but admins
Route::get('/admin/index', '[email protected]');
});
Ich denke, Sie versuchen, Richtlinien mit Guard zu implementieren. Ihr Anwendungsfall sollte eine Richtlinie verwenden. –
NEIN Ich implementiere keine Richtlinie –
Wächter ist für die Authentifizierung, während Richtlinien für die Autorisierung sind. Mit anderen Worten, Sie verwenden Wächter, um JWT für die API und die normale Authentifizierung für das Web zu verwenden. Für verschiedene Zugriffsrechte gemäß Ihrem Beispiel ist dies jedoch eine Autorisierung, die durch Richtlinien vorgenommen werden kann. –