시작하기
첫 목표는 게임 서버에서 인증을 확인하고, 테스트 계정으로 실행과 로그인을 완료하는 것입니다.
1. 앱 등록 정보 전달#
PLAYUS 운영 담당자에게 게임 이름, slug, 웹 실행 주소, 로그인 콜백 주소, 아이콘·커버, 지원 언어, 개인정보처리방침, 보상 정책을 전달합니다. 운영자가 앱을 등록하고 client_id와 client_secret을 발급합니다.
| 항목 | 예시 / 규칙 |
|---|---|
| slug | my-game |
| launchUrl | https://game.example.com/playus |
| redirectUris | https://game.example.com/auth/playus/callback |
| 공개 상태 | TESTING → 테스트 계정 검증 → PUBLISHED |
| 보상 정책 | rewardsEnabled, maxGrantMb, dailyMbCapPerUser |
주소는 등록 값과 정확히 일치해야 합니다. 운영은 HTTPS를 사용합니다. HTTP는 localhost와 127.0.0.1 등 로컬 개발 주소에만 허용됩니다. 테스트 계정 접근 권한은 운영자와 확인하세요.
2. 서버 환경 변수#
PLAYUS_ISSUER=https://www.playus.app
PLAYUS_CLIENT_ID=pa_your_game
PLAYUS_CLIENT_SECRET=<운영자가 전달한 비밀 키>
PLAYUS_LAUNCH_URL=https://game.example.com/playus
비밀 키는 게임 서버의 환경 변수에만 넣습니다. 브라우저 번들, NEXT_PUBLIC_ 또는 VITE_ 변수, 저장소, 분석 이벤트에 넣지 않습니다. 운영과 개발의 issuer·키·콜백을 섞지 마세요.
3. 연결 확인#
curl --fail-with-body \
--user "$PLAYUS_CLIENT_ID:$PLAYUS_CLIENT_SECRET" \
-H 'User-Agent: MyGame/1.0' \
https://www.playus.app/v1/publisher/ping
{"ok":true,"app":"my-game","issuer":"https://www.playus.app"}
이 응답은 서버 인증 확인입니다. 실제 로그인, 보상 지급과 지갑 반영은 각각 따로 검증해야 합니다.
4. 연동 키트 받기#
서버 TypeScript 키트와 브라우저 TypeScript 키트를 게임 프로젝트에 복사해 사용합니다. 서버 키트는 Node.js 20+ 내장 fetch와 crypto를 사용하며 추가 실행 의존성이 없습니다. TypeScript 빌드에 포함하세요.
import { PlayusServer } from './playus-server.js';
const playus = new PlayusServer({
issuer: process.env.PLAYUS_ISSUER!,
clientId: process.env.PLAYUS_CLIENT_ID!,
clientSecret: process.env.PLAYUS_CLIENT_SECRET!,
userAgent: 'MyGame/1.0',
});
await playus.ping();
문서의 game.example.com, pa_your_game, pu_ExamplePlayer123은 예시입니다. 실제 발급 값과 로그인으로 얻은 sub로 바꾸세요.