CheckLogin.php 1.6 KB

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