[ "name" => "Matrix PHP", "version" => "0.1.0", ], ]); } /** * POST /_matrix/client/v3/keys/upload */ public function upload(Request $request): Response { $user = User::authenticateWithRequest($request); $body = json_decode($request->getContent(), true); RequestValidator::validateJson(); return new JsonResponse(new ClientKeysUploadPostResponse([ "curve25519" => 0, "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(new ClientRefreshPostResponse( accessToken: $newTokens->getAccessToken(), expiresInMilliseconds: $newTokens->getExpiresIn(), refreshToken: $newTokens->getRefreshToken(), )); } }