로그인 토큰 유효성 검증
앱 서버가 아이템 지급이나 플레이 데이터 저장처럼 위변조를 허용할 수 없는 처리를 하기 전에는, 요청을 보낸 사용자가 정말 그 계정의 주인인지 확인해야 합니다. 앱 클라이언트가 보낸 Player ID만으로는 위조 여부를 알 수 없으므로, 앱 서버는 로그인 과정에서 발급된 액세스 토큰을 Hive Axyl 인증 서버에 확인해 사용자를 식별합니다.
액세스 토큰 검증은 앱 서버와 Hive Axyl 인증 서버 사이의 Server-to-Server 통신으로 이루어집니다. 앱 클라이언트는 자신의 세션에서 액세스 토큰을 꺼내 앱 서버로 전달하는 역할만 하며, Hive Axyl SDK는 검증 메서드를 제공하지 않습니다.
Note
액세스 토큰이 만료되어 새로 발급받는 과정은 Hive Axyl SDK가 처리하므로 앱 서버가 만료를 직접 관리하지 않아도 됩니다. 자세한 내용은 자동 로그인을 참조하세요.
구현 순서
액세스 토큰 검증은 앱 클라이언트, 앱 서버, Hive Axyl 인증 서버가 순서대로 처리합니다.
- 앱 클라이언트가 현재 세션에서 액세스 토큰과 Player ID를 읽습니다. 두 값은 로그인으로 세션을 등록한 뒤부터 사용할 수 있습니다.
- 앱 클라이언트가 앱 서버에 로그인이나 세션 수립을 요청할 때 액세스 토큰을 함께 전달합니다. 앱 서버가 어떤 형식으로 받을지는 앱 서버의 인증 설계를 따릅니다.
- 앱 서버가 전달받은 액세스 토큰으로 액세스 토큰 유효성 확인을 호출합니다. 응답의
data.active가true이면 유효한 토큰이며,data.playerId에 토큰 주인의 Player ID가 담겨 옵니다. - 앱 서버가 확인 결과에 따라 처리합니다. 유효하면
data.playerId를 기준으로 앱 서버의 자체 세션을 만들고, 유효하지 않으면 비정상 접근으로 판단해 요청을 거부합니다.
앱 클라이언트가 보낸 Player ID를 그대로 신뢰하지 말고, 3단계에서 Hive Axyl 서버가 확인해 준 Player ID를 기준으로 처리하세요.
Hive Axyl SDK가 제공하는 값
Hive Axyl SDK는 현재 세션의 인증 정보를 읽는 프로퍼티를 제공합니다. 두 값 모두 ISessionManager에서 가져옵니다.
ISessionManager.AccessToken: 앱 서버로 전달할 현재 세션의 액세스 토큰이며, 로그인하지 않은 상태에서는null입니다.ISessionManager.PlayerId: 현재 세션의 Player ID이며, 로그인하지 않은 상태에서는0입니다.
액세스 토큰은 민감 정보입니다. 로그에 남기지 말고, 앱 서버로 전달할 때는 HTTPS처럼 암호화된 통신을 사용하세요.
연관 문서
- 액세스 토큰 유효성 확인: 앱 서버가 호출하는 Hive Axyl Server API의 요청과 응답
- 시작하기 - 로그인: 액세스 토큰을 세션에 등록하는 과정
- Hive Axyl Server API 오류 처리: 앱 서버가 받은 오류 응답을 확인하는 순서