getServerTime
토스 앱 서버의 현재 시간을 Unix timestamp 밀리초 단위로 비동기적으로 반환합니다. 클라이언트 기기 시간이 아닌 서버 기준 시간을 사용하므로, 보상 지급·만료 판단 등 클라이언트 시간 조작을 방지해야 하는 로직에 적합합니다. 지원하지 않는 앱 버전에서는 undefined를 반환합니다.
이 함수는 getServerTime.isSupported() 정적 메서드를 통해 현재 앱 버전에서 기능 지원 여부를 미리 확인할 수 있습니다.
시그니처
import { getServerTime } from '@apps-in-toss/web-framework';
declare function getServerTime(): Promise<number | undefined>;
declare namespace getServerTime {
var isSupported: () => boolean;
}
getServerTime.isSupported()
현재 앱 버전이 getServerTime을 지원하는지 확인합니다. 지원하지 않는 버전에서 getServerTime()을 호출하면 undefined를 반환하므로, 호출 전 isSupported()로 버전 체크를 먼저 수행하는 것을 권장합니다.
declare function isSupported(): boolean;
파라미터
없음.
반환값
Promise<number | undefined>— 서버 시간(Unix timestamp, 밀리초). 예:1705123456789. 지원하지 않는 앱 버전에서는undefined.
undefined 처리 필수
지원하지 않는 앱 버전에서는 undefined가 반환됩니다. 반환값을 직접 사용하기 전에 반드시 undefined 여부를 확인하거나, getServerTime.isSupported()로 먼저 체크하세요.
권한
권한이 필요하지 않습니다 — getServerTime은 별도의 PermissionName에 바인딩되지 않습니다. 권한이 필요한 다른 네임스페이스의 일반적인 처리 흐름은 Guides — 권한 처리 패턴을 참고하세요.
예제
최소 예제
import { getServerTime } from '@apps-in-toss/web-framework';
if (getServerTime.isSupported()) {
const serverTime = await getServerTime();
console.log('서버 시간(ms):', serverTime);
}
실전 예제 — 보상 수령 기간 판단
import { getServerTime } from '@apps-in-toss/web-framework';
import { useState, useEffect } from 'react';
const REWARD_DEADLINE_MS = 1705200000000; // 예: 2024-01-14 00:00:00 UTC
function RewardPage() {
const [status, setStatus] = useState<'loading' | 'available' | 'expired' | 'unsupported'>('loading');
useEffect(() => {
async function checkDeadline() {
if (!getServerTime.isSupported()) {
setStatus('unsupported');
return;
}
const serverTime = await getServerTime();
if (serverTime === undefined) {
setStatus('unsupported');
return;
}
setStatus(serverTime <= REWARD_DEADLINE_MS ? 'available' : 'expired');
}
checkDeadline();
}, []);
const messages = {
loading: '확인 중...',
available: '보상을 수령할 수 있습니다.',
expired: '보상 수령 기간이 지났습니다.',
unsupported: '이 기능은 현재 앱 버전에서 지원되지 않습니다.',
};
return <p>{messages[status]}</p>;
}
직접 실행해 보기
sdk-example의 Environment 페이지에서 getServerTime 카드를 실행해 결과를 확인할 수 있습니다.
관련 API
isMinVersionSupported— 특정 앱 버전 이상인지 확인합니다.getTossAppVersion— 현재 앱 버전 문자열을 반환합니다.getOperationalEnvironment— 현재 실행 환경을 반환합니다.
관련 가이드
- Guides — 권한 처리 패턴 — 다른 네임스페이스의 권한 흐름 (참고용;
getServerTime은 권한이 필요하지 않습니다). - Recipes — 서버 시간 기반 만료·보상 판단 패턴
외부 참조
@apps-in-toss/web-framework— 상위 SDK 패키지. 실제 export는 내부적으로@apps-in-toss/web-bridge에서 가져옵니다.- 표준 Web API 대응:
Date.now()— 클라이언트 기기 시간을 반환하며, 사용자가 기기 시간을 조작하면 값이 달라집니다. 치팅 방지가 필요한 경우getServerTime()을 사용하세요.