public function loginAuth($username, $password, $salt)
 {
     $username = isset($username) ? $username : '';
     $password = isset($password) ? $password : '';
     $salt = isset($salt) ? $salt : 0;
     $token_c = new \lib\Token_Core();
     $token = $token_c->grante_token();
     $ret_h = new \proto\RetHead(array('ret' => 1, 'msg' => 'login auth error'));
     $ret_arr = array('result' => $ret_h, 'token' => '', 'space' => 0, 'uspace' => 0, 'aliasname' => '', 'userid' => 0, 'flow' => 0, 'uflow' => 0);
     $user = new UserService();
     $status = $user->loginAuth($username, $password, $salt);
     if ($status) {
         $userspace = $user->querySpace(session("userid"));
         session('space', $userspace['space']);
         session('uspace', $userspace['uspace']);
         $user_flow = $user->queryFlow(session("userid"));
         session('flow', $user_flow['flow']);
         session('uflow', $user_flow['uflow']);
         $user->queryCephAuth(session("userid"));
         $ret_h = new \proto\RetHead(array('ret' => 0, 'msg' => 'Login Auth Success'));
         $ret_arr = array('result' => $ret_h, 'token' => $token, 'space' => session('space'), 'uspace' => session('uspace'), 'aliasname' => session("alias"), 'userid' => session("userid"), 'flow' => session('flow'), 'uflow' => session('uflow'));
         session('user_upload_path', DEFAULT_CACHE_PATH . DIRECTORY_SEPARATOR . session('userid'));
         mkdirs(session('user_upload_path'));
     }
     $ret = new loginResult($ret_arr);
     return $ret;
 }