attributes->get('_handler'); $need_login = false; if ($handler && method_exists($handler, 'needLogin') && $handler->needLogin()) { // 检查是否已登录 $need_login = true; } $login_ok = false; // 需要登陆,进行登陆判断 $token = $request->header('token', ''); // dump($token); if (get_class($handler) == 'App\Module\AppGame\Handler\Public\TokenUsefulHandler') { SessionApp::$session_id = $token; return $next($request); } if (get_class($handler) == 'App\Module\AppGame\Handler\Public\TokenHandler') { SessionApp::$session_id = SessionApp::genSessionID(); } else { if (empty($token)) { $token = SessionApp::getSessionId(); if (get_class($handler) != 'App\Module\AppGame\Handler\Public\TokenHandler') { // token 不合法 $response = new Response(); $response->setCode(RESPONSE_CODE::REQUEST_ERROR); $response->setMsg('请求错误-Token is import!'); return \App\Module\AppGame\Tools\Protobuf::response($response); } } else { // token 不为空 if (!SessionApp::checktoken($token)) { // token 不合法 $response = new Response(); $response->setCode(RESPONSE_CODE::REQUEST_ERROR); $response->setMsg('请求错误-Token'); return Protobuf::response($response); } SessionApp::$session_id = $token; // 登陆判断 $uid = \App\Module\AppGame\SessionApp::getUserId(); // dump($uid); if ($uid > 0) { $handler->user_id = $uid; $login_ok = true; } } } if ($need_login && !$login_ok) { $response = new Response(); $response->setCode(RESPONSE_CODE::NOT_LOGIN); $response->setMsg('用户未登录'); return Protobuf::response($response); } return $next($request); } }