[ "name" => "Matrix PHP", "version" => "0.1.0", ], ]); } /** * POST /_matrix/client/v3/keys/upload */ public function upload(Request $request): Response { $body = json_decode($request->getContent(), true); RequestValidator::validateJson(); return new JsonResponse([ "one_time_key_counts" => [ "signed_curve25519" => count($body["one_time_keys"]) ], ]); } public function query(Request $request): Response { $serverName = $request->attributes->get("serverName"); } /** * POST /_matrix/client/v3/refresh */ public function refresh(Request $request): Response { $body = json_decode($request->getContent(), true); RequestValidator::validateJson(); $tokens = Tokens::fetchWithRefreshToken($body["refresh_token"]); if (empty($tokens)) { throw new AppException( ErrorCode::UNKNOWN_TOKEN, "Soft logged out", Response::HTTP_UNAUTHORIZED, ["soft_logout" => true], ); } $newTokens = Tokens::new($tokens->getUserId(), $tokens->getDeviceId()); $newTokens->insert(); return new JsonResponse([ "access_token" => $newTokens->getAccessToken(), "expires_in" => $newTokens->getExpiresIn(), "refresh_token" => $newTokens->getRefreshToken(), ]); } }