CheckLogin.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Model\SysMenu;
  4. use App\Service\LoginService;
  5. use Closure;
  6. use App\Service\TokenService;
  7. class CheckLogin
  8. {
  9. public function handle($request, Closure $next)
  10. {
  11. $token = $request->header('Authorization');
  12. if (empty($token)) return response()->json(['code' => 1,'msg' => '缺少登录凭证','data' => null]);
  13. $tree_type = $request->header('TreeType');
  14. if (! isset(SysMenu::tree[$tree_type])) return response()->json(['code' => 1,'msg' => '缺少参数或参数错误','data' => null]);
  15. //校验token
  16. list($bool, $return) = TokenService::verifyToken($token);
  17. if(! $bool) return response()->json(['code' => 1,'msg' => $return,'data' => null]);
  18. //人员在jwt里的信息
  19. $e_array = $return;
  20. //校验人员
  21. $checkResult = LoginService::checkUser($e_array);
  22. list($state, $msg) = $checkResult;
  23. if(! $state) return response()->json(['code' => 1,'msg' => $msg,'data' => null]);
  24. $employee = $msg;
  25. //人员id
  26. $employee_id = $employee['id'];
  27. //人员公司部门
  28. $employee = array_merge($employee, LoginService::getPersonDepart($employee_id));
  29. list($state, $msg) = LoginService::checkCompany($employee);
  30. if(! $state) return response()->json(['code' => 1,'msg' => $msg,'data' => null]);
  31. //人员角色 菜单权限
  32. $employee = array_merge($employee, LoginService::getPersonRoleAndPermissions($employee));
  33. //当前选择的系统菜单
  34. $employee['select_tree_type'] = $tree_type;
  35. $request->userData = $employee;
  36. return $next($request);
  37. }
  38. }