VLGG
사용 사례 미리 보기 개인정보 처리방침 이용약관 지원

VLGG 가 Riot API 를 사용하는 방식

Riot API 심사를 위해, 그리고 동일한 정보를 알고 싶은 사용자들을 위해 어떤 데이터를 어떻게 요청하고 어떻게 다루는지 모두 기록합니다.

1. VLGG 란?

VLGG 는 VALORANT 플레이어가 본인 매치에 대한 자세한 분석을 볼 수 있는 iOS 앱입니다. Riot Sign On (RSO) 으로 로그인하면 Riot 공식 Public API 를 통해 본인 매치 이력을 조회하고, 게임 내 스코어보드에서는 볼 수 없는 라운드별·사이드별·무기별 분석을 보여줍니다. 본인 외 다른 플레이어의 데이터는 일체 표시하지 않습니다.

2. 사용 중인 Riot Public API

  • ACCOUNT-V1 — 로그인 사용자의 PUUID 와 Riot ID (gameName#tagLine) 조회.
  • VAL-MATCH-V1 — 사용자의 매치 리스트 및 개별 매치 상세 조회.
  • VAL-RANKED-V1 — 공개 경쟁전 리더보드.
  • VAL-CONTENT-V1 — 정적 메타데이터 (에이전트, 맵, 시즌).
  • VAL-STATUS-V1 — 게임 서비스 상태.

3. 데이터 흐름

  1. 사용자가 iOS 앱에서 “Riot 으로 로그인” 을 탭합니다.
  2. 앱이 ASWebAuthenticationSession 으로 auth.riotgames.com 을 엽니다.
  3. Riot 이 https://api.vlgg.net/auth/rso/callback 의 Cloudflare Worker 콜백으로 리다이렉트합니다.
  4. Worker 가 OAuth 코드를 토큰으로 서버 측에서 교환합니다. Riot client secret 은 디바이스에 노출되지 않습니다.
  5. Worker 가 사용자의 PUUID, Riot ID, 활성 VAL shard 를 조회합니다.
  6. Worker 가 자체 7일 JWT 를 발급하고, iOS 앱은 이를 iOS Keychain 에 저장합니다.
  7. 이후 요청은 JWT 를 사용해 /me/matches, /me/matches/:id, /public/leaderboard 를 호출합니다.
  8. Worker 는 사용자의 RSO refresh token (AES-GCM 으로 저장 시 암호화) 으로 사용자를 대신해 Riot Public API 를 호출합니다.

4. 정책 준수

  • 정찰 금지. 앱에서 임의의 플레이어를 검색할 수 없습니다. 로그인 본인 매치만 표시합니다.
  • 실시간 우위 없음. 라이브 인게임 데이터를 노출하지 않습니다. 종료된 매치 이력만 보여줍니다.
  • 게임 내 오버레이 없음. 독립 iOS 앱이며 오버레이·자동화·게임 클라이언트 통합이 없습니다.
  • RSO opt-in only. 사용자가 Riot Sign On 으로 명시 동의해야 사용자 기능에 접근할 수 있습니다. 동의 없으면 공개 리더보드만 보입니다.
  • 제3자 판매 없음. Firebase (익명 크래시·분석) 와 AdMob (ATT 동의 시 IDFA) 외 어떤 제3자에게도 Riot 데이터를 판매·공유하지 않습니다.

5. 보안

  • RSO refresh token 은 Cloudflare D1 에 AES-GCM (256-bit) 으로 암호화 저장됩니다.
  • OAuth 코드↔토큰 교환은 서버에서 수행됩니다. Riot client_secret 은 iOS 앱에 임베드되지 않습니다.
  • 자체 세션 토큰은 HS256 으로 서명되며 7일 후 만료, 폐기 가능합니다.
  • iOS 앱은 세션 JWT 를 iOS Keychain (kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly) 에 저장합니다.
  • Riot 리다이렉트는 커스텀 URL scheme 이 아닌 Universal Links 를 사용해 콜백 가로채기를 방지합니다.
  • 사용자별 rate limit 을 서버에서 적용합니다.
  • 로그에는 PUUID 의 SHA-256 해시 앞 8자리만 기록합니다.

6. 데이터 보관·삭제

  • Riot 에서 가져온 매치 데이터는 D1 에 캐시되며 immutable 로 취급합니다 (매치는 종료 후 변하지 않음).
  • 로그아웃 시 refresh token 은 삭제되고 세션 토큰은 폐기됩니다.
  • 사용자는 언제든 soopoly.dev@gmail.com 으로 데이터 전체 삭제를 요청할 수 있으며 24시간 내 처리됩니다.

7. 개발자

  • 개발자: soopoly
  • 이메일: soopoly.dev@gmail.com
  • 웹사이트: https://vlgg.net
  • API 키 보유자: 동일 개발자. Production Key 도 동일 명의로 신청.
English한국어日本語

개발자: soopoly · soopoly.dev@gmail.com

VALORANT 및 관련 자산은 Riot Games, Inc. 의 트레이드마크 또는 등록 상표입니다. 본 앱은 Riot Games 가 직접 운영하거나 후원하지 않으며, Riot Games Public API 를 사용해 사용자의 동의 하에 본인의 데이터만을 표시합니다.

© 2026 soopoly