UrlWhitelist.php 820 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Traits;
  3. trait UrlWhitelist
  4. {
  5. /**
  6. * 获取 url 白名单
  7. *
  8. * @return array
  9. */
  10. protected function urlWhitelist(): array
  11. {
  12. if (property_exists($this, 'urlWhitelist')) {
  13. return $this->urlWhitelist;
  14. } else {
  15. return [];
  16. }
  17. }
  18. /**
  19. * 检测请求的 url 是不是在白名单中
  20. *
  21. * @param \Illuminate\Http\Request $request
  22. *
  23. * @return bool
  24. */
  25. protected function shouldPassThrough($request)
  26. {
  27. foreach ($this->urlWhitelist() as $url) {
  28. if ($url !== '/') {
  29. $url = trim($url, '/');
  30. }
  31. if ($request->fullUrlIs($url) || $request->is($url)) {
  32. return true;
  33. }
  34. }
  35. return false;
  36. }
  37. }