ApiSign.php 916 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Auth\Middleware\Authenticate as Middleware;
  5. class ApiSign extends Middleware
  6. {
  7. /**
  8. * 执行句柄
  9. * @param \Illuminate\Http\Request $request
  10. * @param Closure $next
  11. * @param mixed ...$guards
  12. * @return mixed
  13. * @throws \Illuminate\Auth\AuthenticationException
  14. * @since 2020/8/31
  15. * @author wesmiler
  16. */
  17. public function handle($request, Closure $next, ...$guards)
  18. {
  19. // 接口验证
  20. $params = $request->except('s');
  21. $key = $request->header('sign');
  22. if(empty($key)){
  23. $key = isset($params['key'])? $params['key'] : '';
  24. }
  25. if($key){
  26. $data = api_decrypt($key);
  27. $request->merge($data!=NULL && !empty($data)?$data: []);
  28. }
  29. //如果已登录则执行正常的请求
  30. return $next($request);
  31. }
  32. }