method) { case "POST": if ($request->authOK) { return; } if (! (gettype($request->requestBody) == "object" && property_exists($request->requestBody, "login") && property_exists($request->requestBody, "password"))) { throw new foxException("Bad request", 400); } $type = "API"; if (property_exists($request->requestBody, "type")) { $type = $request->requestBody->type; } if ($u = auth::doAuth($request->requestBody->login, $request->requestBody->password)) { $t = authToken::issue($u, $type); return [ "token" => $t->token, "expire" => $t->expireStamp->isNull() ? "Never" : $t->expireStamp ]; } else { throw new foxException("Authorization failed", 401); } break; default: throw new foxException("Bad request", 400); } } } ?>