laravel 中间件 配置

浅浅的花香味﹌ 2022-03-06 07:48 331阅读 0赞
  1. <?php
  2. namespace App\Http;
  3. use Illuminate\Foundation\Http\Kernel as HttpKernel;
  4. class Kernel extends HttpKernel
  5. {
  6. /**
  7. * The application's global HTTP middleware stack.
  8. *
  9. * These middleware are run during every request to your application.
  10. *
  11. * @var array
  12. */
  13. protected $middleware = [
  14. //检测是否进入维护模式
  15. \App\Http\Middleware\CheckForMaintenanceMode::class,
  16. //检测表单请求的数据是否过大
  17. \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
  18. //对提交的请求参数进行php函数trim处理
  19. \App\Http\Middleware\TrimStrings::class,
  20. //将提交请求参数中空字符串转换为null
  21. \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
  22. //修正代理服务器后的服务器参数
  23. \App\Http\Middleware\TrustProxies::class,
  24. ];
  25. /**
  26. * The application's route middleware groups.
  27. *
  28. * @var array
  29. */
  30. protected $middlewareGroups = [
  31. //web 中间件组,应用于routes/web.php路由文件
  32. //在RouteServiceProvider中设定
  33. 'web' => [
  34. //cookie 加密解密
  35. \App\Http\Middleware\EncryptCookies::class,
  36. //将cookie添加到响应中
  37. \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
  38. //开启会话
  39. \Illuminate\Session\Middleware\StartSession::class,
  40. // \Illuminate\Session\Middleware\AuthenticateSession::class,
  41. //将系统的错误数据注入到视图变量$errors中
  42. \Illuminate\View\Middleware\ShareErrorsFromSession::class,
  43. //校验csrf,防止跨站请求伪造的安全威胁
  44. \App\Http\Middleware\VerifyCsrfToken::class,
  45. // 处理路由绑定
  46. \Illuminate\Routing\Middleware\SubstituteBindings::class,
  47. //强制用户邮箱认证
  48. \App\Http\Middleware\EnsureEmailIsVerified::class,
  49. ],
  50. //api 中间件组,应用于rotes/api.php路由文件
  51. //在RouteServiceProvider中设定
  52. 'api' => [
  53. //使用别名来调用中间件
  54. //请见手册中为路由分配中间件
  55. 'throttle:60,1',
  56. 'bindings',
  57. ],
  58. ];
  59. /**
  60. * The application's route middleware.
  61. *
  62. * These middleware may be assigned to groups or used individually.
  63. *
  64. * @var array
  65. */
  66. protected $routeMiddleware = [
  67. //只有登录用户才能方位,我们在控制器的构造方法中大量使用
  68. 'auth' => \App\Http\Middleware\Authenticate::class,
  69. //HTTP Basic Auth认证
  70. 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
  71. //处理路由绑定
  72. 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
  73. 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
  74. //用户授权功能
  75. 'can' => \Illuminate\Auth\Middleware\Authorize::class,
  76. //只有游客才能访问,在register和login请求中使用,只有未登录用户才能访问这些页面
  77. 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
  78. //签名认证,在找回密码章节我们讲过
  79. 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
  80. //访问节流,类似于[1分钟只能请求10次]的需要,一般在api使用
  81. 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
  82. //laravel 自带的强制用户邮箱认证的中间件,为了更加贴近我们的逻辑,已被重写
  83. 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
  84. ];
  85. //设定中间件优先级,此数组定义了除[全局中间]以外的中间件执行顺序
  86. //可以看到startSession永远是最开始执行的,因为startSession后,
  87. //我们才能在程序中使用Auth等用户认证的功能
  88. protected $middlewarePriority = [
  89. \Illuminate\Session\Middleware\StartSession::class,
  90. \Illuminate\View\Middleware\ShareErrorsFromSession::class,
  91. \App\Http\Middleware\Authenticate::class,
  92. \Illuminate\Session\Middleware\AuthenticateSession::class,
  93. \Illuminate\Routing\Middleware\SubstituteBindings::class,
  94. \Illuminate\Auth\Middleware\Authorize::class,
  95. ];
  96. }

发表评论

表情:
评论列表 (有 0 条评论,331人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Laravel中间实现原理

    1. 什么是中间件? 对于一个Web应用来说,在一个请求真正处理前,我们可能会对请求做各种各样的判断,然后才可以让它继续传递到更深层次中。而如果我们用if else这样子

    相关 Laravel 5.5 的中间

    简介 Laravel 的中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求。例如,Laravel 内置了一个中间件来验证用户的身份认证。如果用户没有通过身份认证,