php – 使用Laravel中的auth保护所有管理员/路由
发布时间:2020-12-14 19:50:31 所属栏目:大数据 来源:网络整理
导读:我是全新的laravel,并在我的第一个应用程序设置管理员面板授权.我目前设置我的文件设置的方式是: controllers/ admin/ dashboard.php settings.php non-admin-controller1.php non-admin-controller1.phpviews/ admin/ dashboard.blade.php login.blade.php
我是全新的laravel,并在我的第一个应用程序设置管理员面板授权.我目前设置我的文件设置的方式是:
controllers/ admin/ dashboard.php settings.php non-admin-controller1.php non-admin-controller1.php views/ admin/ dashboard.blade.php login.blade.php template.blade.php non-admin-view1.php non-admin-view1.php non-admin-view1.php …这些是我的路线 Route::get('admin/login',function() { return View::make('admin.login'); }); Route::get('admin/logout',function() { return Auth::logout(); return Redirect::to('admin/login'); }); Route::post('admin/login',function() { $userdata = array('username' => Input::get('username'),'password' => Input::get('password')); if (Auth::attempt($userdata)) { return Redirect::to('admin'); } else { return Redirect::to('admin/login')->with('login_errors',true); } }); Route::controller('admin.dashboard'); Route::get('admin',array('before' => 'auth',function() { return Redirect::to_action('admin@dashboard'); })); Route::filter('auth',function() { if (Auth::guest()) return Redirect::to('admin/login'); }); 当我去/管理我被重定向到管理员/登录并要求登录,这正是我需要它的工作.登录后,我被重定向到管理员/仪表板,这一切都看起来不错.我有2个问题. >当我去管理/注销我已经注销但迎接一个空白页(它不是重定向到管理员/登录)
我在这里做错了什么?我做什么对了?为管理员创建单独的软件包会更有意义吗?谢谢!
所以我能够解决我的问题略有不同.我在控制器文件夹的根目录中创建了一个(基础)Admin_Controller,一个构造函数在执行之前调用auth过滤器:
class Admin_Controller extends Base_Controller { public function __construct() { $this->filter('before','auth'); } } 然后将我所有管理相关的控制器放在/ controllers / admin中,扩展Admin_Controller并调用父构造函数: class Admin_Dashboard_Controller extends Admin_Controller { public function __construct() { parent::__construct(); } public function action_index() { return View::make('admin.dashboard'); } } 这可能不是最有说服力的解决方案,但它可以做到这一点! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |