为路由的访问增加拦截条件,只有通过认证(符合某个条件)的用户才能访问到指定路由,这种方式称之为路由保护。

参考文档:
[ Laravel 5.6 文档 ] 安全系列 —— 登录认证
[ Laravel 5.6 文档 ] 基础组件 —— 中间件

中间件拦截

使用中间件为路由增加拦截条件,只有通过中件件认证才能访问到该路由

  1. 路由 -> middleware('中间件名称')

示例代码

  1. // 后台路由部分
  2. Route::group(['prefix' => 'admin'], function() {
  3. // -> name 方法为路由指定别名
  4. Route::get('public/login', 'Admin\PublicController@login') -> name('login'); // 后台登录页面
  5. Route::get('public/logout', 'Admin\PublicController@logout'); // 退出登录
  6. Route::post('public/check', 'Admin\PublicController@check'); // 登录验证
  7. /**
  8. * -> middleware('auth:admin') 方法为路由添加了判断登录授权的中间件
  9. * :admin 表示使用名为admin的guard(config/auth.php 中 guards 数组)来实现认证
  10. * 如果非授权, 将跳转名为 `login` 的路由
  11. */
  12. // Route::get('index/index', 'Admin\IndexController@index') -> middleware('auth:admin'); // 后台索引页面
  13. // Route::get('index/welcome', 'Admin\IndexController@welcome') -> middleware('auth:admin'); // 后台欢迎页面
  14. });
  15. // 将需要权限判断的路由单独抽取成一个群组
  16. Route::group(['prefix' => 'admin', 'middleware' => 'auth:admin'], function() {
  17. Route::get('index/index', 'Admin\IndexController@index');
  18. Route::get('index/welcome', 'Admin\IndexController@welcome');
  19. });