| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- namespace App\Http\Middleware;
- use App\Model\SysMenu;
- use App\Service\LoginService;
- use Closure;
- use App\Service\TokenService;
- class CheckLogin
- {
- public function handle($request, Closure $next)
- {
- $token = $request->header('Authorization');
- if (empty($token)) return response()->json(['code' => 1,'msg' => '缺少登录凭证','data' => null]);
- $tree_type = $request->header('TreeType');
- if (! isset(SysMenu::tree[$tree_type])) return response()->json(['code' => 1,'msg' => '缺少参数或参数错误','data' => null]);
- $title = SysMenu::tree[$tree_type];
- //校验token
- list($bool, $return) = TokenService::verifyToken($token);
- if(! $bool) return response()->json(['code' => 1,'msg' => $return,'data' => null]);
- //人员在jwt里的信息
- $e_array = $return;
- //校验是否越权拿菜单数据
- $bool = LoginService::hasPersonRoleForSysMenuList($e_array['employee_id'], $tree_type);
- if(! $bool) return response()->json(['code' => 1,'msg' => '无系统' . $title . '权限','data' => null]);
- //校验人员
- $checkResult = LoginService::checkUser($e_array);
- list($state, $msg) = $checkResult;
- if(! $state) return response()->json(['code' => 1,'msg' => $msg,'data' => null]);
- $employee = $msg;
- //人员id
- $employee_id = $employee['id'];
- //人员公司部门
- $employee = array_merge($employee, LoginService::getPersonDepart($employee_id));
- list($state, $msg) = LoginService::checkCompany($employee);
- if(! $state) return response()->json(['code' => 1,'msg' => $msg,'data' => null]);
- //人员角色 菜单权限
- $employee = array_merge($employee, LoginService::getPersonRoleAndPermissions($employee, $tree_type));
- //当前选择的系统菜单
- $employee['select_tree_type'] = $tree_type;
- $request->userData = $employee;
- return $next($request);
- }
- }
|