我在Windows开发机上使用Laravel 5。我想在我的整个应用程序中自定义并使用 Auth 中间件来维护身份验证。
我的用例是一个标准的用例。有两类(或三类)用户-管理员和常规(常规是所有非admin用户)。
管理员显然具有后端管理的作用,因此具有单独的路由组/admin/,该路由组应将未登录的用户重定向到/admin/login 。我已经设置好了..
Route::group(['middleware'=>'auth', 'prefix' => 'admin'], function() {
Route::get('login','App\AuthController@getLogin');
Route::post('login','App\AuthController@postLogin');
});
发布登录表单后,我如何要求Auth 添加过滤器
最佳答案
我建议您定义另一种中间件,以检测用户是否为管理员,而不用修改身份验证。现在,将此另一种中间件添加到只有管理员才能访问的路由中。
添加几个中间件来路由
Route::group(['middleware' => ['auth','admin']], function() {
中间件看起来像
public function handle($request, Closure $next) {
if (Auth::user()->role == "admin") {
return $next($request);
} else {
return redirect("/")->withMyerror("You are not authorized for this action");
}
}
关于php - Laravel Auth仅验证管理员/ super 用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29842660/