Auth.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace app\middleware\api;
  3. use app\service\api\AuthServiceFacade;
  4. use app\service\api\UserServiceFacade;
  5. use laytp\BaseMiddleware;
  6. use think\Request;
  7. class Auth extends BaseMiddleware
  8. {
  9. /**
  10. * 执行中间件
  11. * @param Request $request
  12. * @param \Closure $next
  13. * @return mixed
  14. */
  15. public function handle(Request $request, \Closure $next)
  16. {
  17. global $_GPC;
  18. foreach ($_GET as $key => $value) {
  19. $_GET[$key] = $_GPC[$key] = $value;
  20. }
  21. if (AuthServiceFacade::needLogin()) {
  22. $initUser = UserServiceFacade::init($request->header('token'));
  23. if (!$initUser) return $this->error(UserServiceFacade::getError(), 10401);
  24. if (!UserServiceFacade::isLogin()) {
  25. return $this->error('登录信息已过期', 10401);
  26. }
  27. } else {
  28. //不需要登录的接口,也可能需要获取登录用户的信息
  29. UserServiceFacade::init($request->header('token'));
  30. }
  31. return $next($request);
  32. }
  33. }