Auth Web APIs

에픽 계정 서비스 웹 API 인증을 위해 인증 인터페이스 웹 API를 사용합니다.

11 분 소요

에픽 온라인 서비스는 OAuth 2.0 프로토콜을 사용하여 인증을 처리하며, 웹 서버와 클라이언트 측 애플리케이션의 일반적인 사용 사례를 지원합니다. 에픽은 일부 특정 사용 사례를 위한 커스텀 허가 유형도 도입했습니다.

시작하기 전에 먼저 에픽으로부터 OAuth 2.0 클라이언트 크리덴셜을 얻어야 합니다. 이 크리덴셜은 클라이언트 ID(Client ID)와 클라이언트 암호(Client Secret)의 형태이며 에픽 인증 서버의 액세스 토큰을 요청할 때 사용됩니다. 자세한 내용은 에픽 계정 서비스 시작하기의 가이드를 참고하세요.

시나리오

에픽게임즈 스토어의 게임 클라이언트

에픽게임즈 스토어 에서 실행되는 게임 클라이언트는 에픽의 인증 서버에서 일회용 교환 코드 를 사용하여 인증을 처리합니다. 에픽 런처 가 이 교환 코드를 생성하며, 명령줄 실행인자로 게임 클라이언트 에 전달합니다.

게임 클라이언트가 실행되면 에픽 토큰 엔드포인트에 클라이언트 크리덴셜, 교환 코드 등을 요청하게 됩니다. 응답에는 액세스 토큰, 인증된 클라이언트 및 계정 정보 그리고 선택 항목인 새로고침 토큰 이 포함됩니다.

게임 클라이언트는 에픽 서비스의 모든 요청에 액세스 토큰을 포함합니다. 액세스 토큰은 검증이나 서비스 간의 요청을 위해 신뢰하는 게임 서버에 전달될 수도 있습니다.

해당되는 경우, 새로고침 토큰은 토큰 응답에도 포함됩니다. 게임 클라이언트는 액세스 토큰이 만료되는 경우 새로고침 토큰을 사용해야 합니다. 이는 액세스 토큰이 발급된 후 일반적으로 2시간 이내에 일어납니다.

EGS 클라이언트 인증 플로

에픽게임즈 런처 인증 플로를 나타낸 다이어그램 클릭하면 이미지가 확대됩니다.

웹 서버 애플리케이션

서버 측 애플리케이션의 경우 사용자를 웹 브라우저에서 에픽 인증 플로를 거치도록 만들어 사용자가 인증 코드 를 획득할 수 있게 합니다. 사용자는 에픽게임즈 계정으로 로그인하도록 요청받으며 애플리케이션을 인증하도록 요청받을 수도 있습니다. 인증을 마치면 사용자 에이전트는 쿼리 파라미터로 포함된 인증 코드와 함께 다시 웹 애플리케이션으로 리디렉션됩니다.

웹 서버는 리디렉션 후 에픽 토큰 엔드포인트에 클라이언트 크리덴셜과 인증 코드를 사용하여 요청을 보냅니다. 응답에는 액세스 토큰뿐만 아니라 인증된 클라이언트와 계정에 대한 정보도 포함됩니다.

웹 서버는 에픽 서비스의 모든 요청에 액세스 토큰을 포함합니다.

인증

인증 플로의 첫 단계로 에픽 계정 서비스를 통한 인증부터 거쳐야 합니다. 인증에는 오직 OAuth 2.0만 지원되며, 추가적인 커스텀 허가 유형이 제공됩니다.

클라이언트가 토큰 요청에 필요한 정보(교환 코드, 인증 코드, 사용자 크리덴셜 등)를 갖추고 나면 액세스 토큰을 요청하면서 시작됩니다.

액세스 토큰 요청하기

클라이언트는 액세스 토큰을 요청하려면 토큰 엔드포인트에 HTTP 요청을 해서 클라이언트 크리덴셜(클라이언트 ID, 클라이언트 암호)과 사용자 크리덴셜을 전달해야 합니다.

에픽 토큰 엔드포인트는 https://api.epicgames.dev/epic/oauth/v1/token 입니다. 액세스 토큰이 필요하지 않다고 나타내려면 https://api.epicgames.dev/epic/oauth/v1/revoke를 사용하세요. 이 엔드포인트는 RFC 7009 - OAuth 2.0 Token Revocation을 시행합니다.

클라이언트 크리덴셜은 기본 인증을 통해 인증 헤더에 전달됩니다. 이 엔드포인트는 다음과 같은 포스트 파라미터를 지원합니다:

파라미터 이름설명
grant_type사용되는 허가 유형: exchange_code , password , refresh_token 또는 client_credentials .
deployment_id클라이언트가 인증에 사용하려고 하는 디플로이 ID입니다. 디플로이가 필요한 다른 서비스와의 상호작용에 영향을 미칩니다. 공개 디플로이가 아닌 경우 권한이 부여된 사용자만 로그인할 수 있습니다.
scope사용자가 요청할 범위(권한)를 공백으로 구분한 목록입니다. 예: basic profile , friends_list , presence
password 허가 유형용
password 허가 유형은 개발 중 사용할 수 있지만 이 제품과 연결된 조직의 멤버인 계정에 대해서만 허용됩니다. 참고: password 허가 유형은 2FA가 활성화된 상태에서는 작동하지 않습니다.
username계정의 사용자 이름(이메일 주소)으로; 오직 password 허가 유형과 함께 사용됩니다.
password계정의 비밀번호로, 오직 password 허가 유형과 함께 사용됩니다.
exchange_code 허가 유형용
exchange_code런처가 게임 클라이언트에 전달한 교환 코드로; 오직 exchange_code 허가 유형과 함께 사용됩니다.
authorization_code 허가 유형용
code인증 서버에서 받은 인증 코드입니다.
client_credentials 허가 유형용(웹 인증 참조)
client_id애플리케이션의 OAuth 클라이언트 ID입니다.
client_secret애플리케이션의 OAuth 클라이언트 암호입니다.

이러한 파라미터는 요청 본문에 있어야 합니다. 쿼리 파라미터는 무시됩니다.

다음은 password 허가 유형을 사용한 요청 샘플을 보여주는 코드 조각입니다:

POST /epic/oauth/v1/token HTTP/1.1
Host: api.epicgames.dev
Content-Type: application/x-www-form-urlencoded
Authorization: Basic Zm9vOmJhcg==
grant_type=password&
deployment_id=foo&
scope=basic_profile friends_list presence&
username=user@example.com&
password=s3cr3t

응답에는 다음과 같은 항목이 포함됩니다:

응답설명
access_token액세스 토큰입니다. 선택 항목으로 접두사가 있을 수 있습니다(예: eg1~[token] ). 이 값은 모든 에픽 서비스에 대한 요청에서 Bearer 타입을 사용하여 Authorization 헤더에 있는 그대로 전달되어야 합니다.
expires_in토큰 만료까지 걸리는 시간(초)입니다.
expires_atISO 8601 형식의 만료일입니다.
account_id토큰이 생성된 대상 사용자의 에픽 계정 ID입니다.
client_id이 토큰 생성에 사용된 클라이언트 ID입니다.
application_id클라이언트가 관련된 애플리케이션 ID입니다.
token_type생성된 토큰 타입으로 값은 항상 bearer 입니다.
refresh_token클라이언트 구성에 따라 새로고침 토큰이 선택적으로 반환됩니다. 이 새로고침 토큰은 액세스 토큰 만료 전이나 만료 후 세션 연장에 사용할 수 있습니다.
refresh_expires새로고침 토큰 만료까지 걸리는 시간(초)입니다.
refresh_expires_atISO 8601 형식의 새로고침 토큰 만료일입니다.

다음은 응답 샘플을 보여주는 코드 조각입니다:

{
"scope": "basic_profile friends_list presence",
"token_type": "bearer",
"access_token": "eyJ0IjoiZXBpY19pZCIsImFsZyI6IlJTMjU2Iiwia2lkIjoibldVQzlxSFVldWRHcnBXb3FvVXVHZkFIYmVWM2NsRnlsdFRYMzhFbXJKSSJ9.eyJhdWQiOiJ4eXphNzg5MWxoeE1WWUdDT043TGduS1paOEhRR0Q1SCIsInN1YiI6Ijk2MjZmNDQxMDU1MzQ5Y2U4Y2I3ZDdkNWE0ODNlYWEyIiwidCI6ImVwaWNfaWQiLCJzY29wZSI6ImJhc2ljX3Byb2ZpbGUgZnJpZW5kc19saXN0IHByZXNlbmNlIiwiYXBwaWQiOiJmZ2hpNDU2N08wM0hST3hFandibjdrZ1hwQmhuaFd3diIsImlzcyI6Imh0dHBzOlwvXC9hcGkuZXBpY2dhbWVzLmRldlwvZXBpY1wvb2F1dGhcL3YxIiwiZG4iOiJLcm5icnkiLCJleHAiOjE1ODgyODYwODMsImlhdCI6MTU4ODI3ODg4Mywibm9uY2UiOiJuLUI1cGNsSXZaSkJaQU1KTDVsNkdvUnJDTzNiRT0iLCJqdGkiOiI2NGMzMGQwMjk4YTM0MzdjOGE3NGU1OTAxYzM0ODZiNSJ9.MZRoCRpjIb--dD7hxoo2GvjSPhUSNpOq1FhtShTBmzMJ1qlHFPzNaUiAEETAc3mabGPKyOxUP6Q1FBadr_P_UtbtB7kf34hN2VTv5czW6WOx1HdpjwUQZuxFyDc_aix7FCS0Egu4rZlC65b-B0FUVlial_s_FrH8ou5L_d-4I0KVpIwtv-b_M6EQ9jtLdQRfMaP6aV0rIerrbqFZ617Pe7XT4IO9jZFwM8F5aDTeDHkkOO41wyVibrm38799lP4B65RIv9CwbAL-TVmV1L5gFYITaZhi5ShfZzTvxAk-3Dxwp8c5JvcO68zpbya5gFSAfhsd7vt9YLU0gQR2uXq3Vw",
"refresh_token": "eyJ0IjoiZXBpY19pZCIsImFsZyI6IlJTMjU2Iiwia2lkIjoibldVQzlxSFVldWRHcnBXb3FvVXVHZkFIYmVWM2NsRnlsdFRYMzhFbXJKSSJ9.eyJhdWQiOiJ4eXphNzg5MWxoeE1WWUdDT043TGduS1paOEhRR0Q1SCIsInN1YiI6Ijk2MjZmNDQxMDU1MzQ5Y2U4Y2I3ZDdkNWE0ODNlYWEyIiwidCI6ImVwaWNfaWQiLCJhcHBpZCI6ImZnaGk0NTY3TzAzSFJPeEVqd2JuN2tnWHBCaG5oV3d2Iiwic2NvcGUiOiJiYXNpY19wcm9maWxlIGZyaWVuZHNfbGlzdCBwcmVzZW5jZSIsImlzcyI6Imh0dHBzOlwvXC9hcGkuZXBpY2dhbWVzLmRldlwvZXBpY1wvb2F1dGhcL3YxIiwiZG4iOiJLcm5icnkiLCJleHAiOjE1ODgzMDc2ODMsImlhdCI6MTU4ODI3ODg4MywianRpIjoiYzczYjA2NmUyZDU4NGVkNTk0NjZiOThiNzI3NzJiMjAifQ.O-eVa46NimubKwxe9SwlHxciivu0XWe1-DSL74mMiA_PpPoW0yKL9DfmsLxiPCwsRB5_hQTc6_FM7G1FyfKtX_VVAp90MZPkhCbAbfKmTpQVcL0Ya6kve4KMG8KxeLVfLLhubCbJTYlnDNVHobbpvpQtHd8Ys321ZNDJj05l_tnZzdgus-xmCO6orX4UP4wDd1jAOXXeqRT47OXuLCgSE0q6Osfh-ENPwh6ph1i7ld759xPV0oNcQb8XiPxnT6_FUmFugzG1YS1z9bTnVWmbP2RmYluue5VQm5EKGJZ91Alve8s2eNEtDfUqaBLZ45pqGkc1KjbYTtP0a_1ue2BpkQ",
"expires_in": 7200,
"expires_at": "2020-04-30T22:34:43.549Z",
"refresh_expires_in": 28800,
"refresh_expires_at": "2020-05-01T04:34:43.549Z",
"account_id": "9626f441055349ce8cb7d7d5a483eaa2",
"client_id": "xyza7891lhxMVYGCON7LgnKZZ8HQGD5H",
"application_id": "fghi4567O03HROxEjwbn7kgXpBhnhWwv"
}

액세스 토큰은 항상 Authorization 헤더에 있는 그대로 에픽 서비스에 전달되어야 합니다. 예: Authorization: Bearer eyJraWQiOiJ0RkM...

웹 애플리케이션

웹/서버 측 애플리케이션의 경우 액세스 토큰을 요청하기 전에 먼저 인증 코드부터 받아야 합니다. 웹 인증을 사용하기 전에 리디렉션 URL로 에픽 OAuth 클라이언트를 구성해야 합니다.

사용자가 없는 클라이언트 구성(예: 클라이언트 정책에 사용자가 필요없음)인 경우 사용자 정보를 가져오지 않고 아래의 리디렉션 명령을 건너뛰어도 됩니다. client_credentials만 사용하여 클라이언트를 초기화할 수 있습니다.

절차를 개시하려면 사용자에게 에픽게임즈 계정 로그인을 요청하는 인증 페이지로 애플리케이션이 사용자를 리디렉션해야 합니다. 인증 URL은 다음과 같습니다:

https://www.epicgames.com/id/authorize?client_id={client_id}&response_type=code&scope=basic_profile

추가적인 redirect_uri={redirect_uri} 파라미터로 여러 개의 리디렉션 URL을 정의할 수 있습니다. 하나 이상의 리디렉션의 인증 URL은 다음과 같습니다.

https://www.epicgames.com/id/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code&scope=basic_profile

사용자가 로그인하면 인증 코드와 함께 구성된 리디렉션 URL로 다시 리디렉션됩니다. 애플리케이션은 해당 코드를 사용하여 액세스 토큰 요청하기에 설명된 대로 authorization_code 허가 유형을 통해 액세스 토큰을 받아야 합니다.

또한, 요청과 콜백 사이의 스테이트를 유지하는 데 사용될 수 있으며 사이트 간 요청 위조에 사용되는 선택 항목인 스테이트 파라미터도 지원합니다.

다음은 사용자 인증 후 리디렉션의 예입니다:

https://www.example.com/?code=cfd1de1a8d224203b0445fe977838d81&state=rfGWJux2WL86Zxr6nKApCAnDo8KexEUE

액세스 토큰 검증하기

오프라인 검증

액세스 토큰은 토큰의 진위를 검증하는 데 사용되는 헤더와 서명을 포함하는 JSON 웹 토큰(JWT )입니다.

서명을 검증하기 전에 먼저 에픽게임즈 서비스에서 JSON 웹 키(JWK)로 퍼블리시된 공개 키 부터 가져와야 합니다. 현재 공개 키가 모두 포함된 JWK 세트 형식을 사용하는 단일 엔드포인트가 노출됩니다. 키가 자주 변경되지는 않으나 언제든지 순환될 수 있습니다.

JWK 엔드포인트는 https://api.epicgames.dev/epic/oauth/v1/.well-known/jwks.json 입니다.

공개 키를 가져온 클라이언트는 해당 키를 합리적인 기간 동안 캐시합니다. 키가 순환될 수는 있으나 키 ID가 지정된 키는 변하지 않습니다.

다음은 공개 키 엔드포인트의 응답 샘플을 보여주는 코드 조각입니다:

{
"keys": [
{
"kty": "RSA",
"e": "AQAB",
"kid": "WMS7EnkIGpcH9DGZsv2WcY9xsuFnZCtxZjj4Ahb-_8E",
"n": "l6XI48ujknQQlsJgpGXg4l2i_DuUxuG2GXTzkOG7UtX4MqkVBCfW1t1JIIc8q0kCInC2oBwhC599ZCmd-cOi0kS7Aquv68fjERIRK9oCUnF_lJg296jV8xcalFY0FOWX--qX3xGKL33VjJBMIrIu7ETjj06s-v4li22CnHmu2lDkrp_FPTVzFscn-XRIojqIFb7pKRFPt27m12FNE_Rd9bqlVCkvMNuE7VTpTOrSfKk5B01M5IuXKXk0pTAWnelqaD9bHjAExe2I_183lp_uFhNN4hLTjOojxl-dK8Jy2OCPEAsg5rs9Lwttp3zZ--y0sM7UttN2dE0w3F2f352MNQ"
}
]
}

온라인 검증

오프라인 검증을 사용할 수 없는 경우 온라인으로 검증할 수 있습니다. 유효한 액세스 토큰을 사용하여 토큰 정보 엔드포인트를 호출하면 됩니다. 이 엔드포인트는 토큰 인트로스펙션(Token Introspection) 사양을 구현합니다.

이 토큰 정보 엔드포인트는 https://api.epicgames.dev/epic/oauth/v1/tokenInfo 입니다.

다음은 토큰을 검증하는 요청 샘플을 보여주는 코드 조각입니다:

POST /epic/oauth/v1/tokenInfo HTTP/1.1
Host: api.epicgames.dev
Content-Type: application/x-www-form-urlencoded
token=eyJ0IjoiZXBpY19pZCIsImFsZyI6IlJTMjU2Iiwia2lkIjoibldVQzlxSFVldWRHcnBXb3FvVXVHZkFIYmVWM2NsRnlsdFRYMzhFbXJKSSJ9.eyJhdWQiOiJ4eXphNzg5MWxoeE1WWUdDT043TGduS1paOEhRR0Q1SCIsInN1YiI6Ijk2MjZmNDQxMDU1MzQ5Y2U4Y2I3ZDdkNWE0ODNlYWEyIiwidCI6ImVwaWNfaWQiLCJzY29wZSI6ImJhc2ljX3Byb2ZpbGUgZnJpZW5kc19saXN0IHByZXNlbmNlIiwiYXBwaWQiOiJmZ2hpNDU2N08wM0hST3hFandibjdrZ1hwQmhuaFd3diIsImlzcyI6Imh0dHBzOlwvXC9hcGkuZXBpY2dhbWVzLmRldlwvZXBpY1wvb2F1dGhcL3YxIiwiZG4iOiJLcm5icnkiLCJleHAiOjE1ODgyODYwODMsImlhdCI6MTU4ODI3ODg4Mywibm9uY2UiOiJuLUI1cGNsSXZaSkJaQU1KTDVsNkdvUnJDTzNiRT0iLCJqdGkiOiI2NGMzMGQwMjk4YTM0MzdjOGE3NGU1OTAxYzM0ODZiNSJ9.MZRoCRpjIb--dD7hxoo2GvjSPhUSNpOq1FhtShTBmzMJ1qlHFPzNaUiAEETAc3mabGPKyOxUP6Q1FBadr_P_UtbtB7kf34hN2VTv5czW6WOx1HdpjwUQZuxFyDc_aix7FCS0Egu4rZlC65b-B0FUVlial_s_FrH8ou5L_d-4I0KVpIwtv-b_M6EQ9jtLdQRfMaP6aV0rIerrbqFZ617Pe7XT4IO9jZFwM8F5aDTeDHkkOO41wyVibrm38799lP4B65RIv9CwbAL-TVmV1L5gFYITaZhi5ShfZzTvxAk-3Dxwp8c5JvcO68zpbya5gFSAfhsd7vt9YLU0gQR2uXq3Vw

다음은 토큰 정보 엔드포인트의 응답 샘플을 보여주는 코드 조각입니다:

{
"active": true,
"scope": "basic_profile friends_list presence",
"token_type": "bearer",
"expires_in": 6761,
"expires_at": "2020-04-30T22:34:43.549Z",
"account_id": "9626f441055349ce8cb7d7d5a483eaa2",
"client_id": "xyza7891lhxMVYGCON7LgnKZZ8HQGD5H",
"application_id": "fghi4567O03HROxEjwbn7kgXpBhnhWwv"
}

액세스 토큰과 새로고침 토큰 모두 이 엔드포인트를 사용하여 검증할 수 있습니다.

에픽게임즈 스토어의 게임 클라이언트

에픽게임즈 스토어를 통해 연결된 게임 클라이언트를 사용할 때 게임 클라이언트는 반드시 exchange_code 허가 유형을 사용하여 액세스 토큰을 가져오고 클라이언트 크리덴셜과 런처에서 게임에 전달된 코드를 전달해야 합니다.

개발 단계에서는 password 허가 유형을 사용할 수도 있습니다. 그러면 게임 클라이언트가 런처 통합 없이 에픽 서비스에 인증할 수 있습니다.

에픽게임즈 런처가 게임을 시작하는 경우 다음 명령줄 파라미터를 사용하여 실행됩니다:

파라미터설명
AUTH_LOGIN교환 코드에는 사용되지 않습니다.
AUTH_PASSWORD게임 클라이언트가 사용할 크리덴셜입니다. 여기에는 인증 서버에 전달할 교환 코드가 포함됩니다.
epicapp내부 애플리케이션 이름입니다.
epicenv게임이 실행되는 환경입니다(항상 Prod).
epicusername런처에서 인증되는 계정의 표시명입니다.
epicuserid런처에서 인증되는 계정의 에픽 계정 ID입니다.
epiclocale사용자 개인설정 또는 시스템 언어에 따른 선호 로케일입니다.
epicovt오너십 검증 토큰 정보를 포함하는 파일의 전체 경로입니다.
epicsandboxid애플리케이션이 실행된 샌드박스입니다. 예를 들어, 라이브(Live), 스테이지(Stage) 또는 데브(Dev) 샌드박스와 연결된 ID입니다.

다음은 런처가 전달하는 명령줄 파라미터의 샘플입니다:

-AUTH_LOGIN=unused -AUTH_PASSWORD=ed642dfd4e6f47bf8354caf1bcab2fc2 -AUTH_TYPE=exchangecode -epicapp=[AppName] -epicenv=Prod -epicusername="DisplayName" -epicuserid=ab1f86d911d74f4aa8399849e9ca9aa5 -epiclocale=en-US
-epicovt=”C:/AppName/.egstore/ab1f86d911d74f4aa8399849e9ca9aa5/File.ovt”

계정 정보

액세스 토큰을 가져오고 나면 사용자를 대신하여 에픽 서비스에 요청을 할 수가 있습니다. 예를 들어, 요청을 보내 사용자의 표시명 또는 사용자의 친구의 표시명을 얻을 수 있습니다.

액세스 토큰에서

액세스 토큰에서 직접 정보를 얻을 수 있습니다. 액세스 토큰은 JSON 웹 토큰(JWT)으로 인코딩됩니다. 이 토큰의 헤더에는 토큰 유형과 토큰에서 사용하는 서명뿐만 아니라 사용자 정보를 포함하는 페이로드, 클라이언트, 세션, 서명 등의 정보가 포함됩니다. 라이브러리를 사용하여 JWT 디코딩을 처리하는 것을 권장합니다. 하지만 그럴 수 없는 경우에는 JWT 사양을 참고하세요.

페이로드에는 다음 정보가 포함됩니다:

요청유형설명
iss스트링토큰을 발급한 에픽게임즈 인증 서버의 기본 URI입니다.
sub스트링client_credentials 허가 유형을 사용할 때는 이 요청이 없습니다.
aud스트링인증 요청에 지정된 클라이언트 ID입니다.
iat정수토큰이 발급된 시간을 나타내는 UNIX 타임 스탬프입니다.
exp정수토큰의 만료 시간을 나타내는 UNIX 타임스탬프입니다.
jti스트링이 토큰의 고유 식별자입니다.
t스트링토큰의 유형입니다. 이것은 항상 epic_id입니다. 현재 버전 접두사를 EG1 토큰으로 대체합니다.
scope스트링사용자가 인증한 범위를 공백으로 구분한 목록입니다.
dn스트링사용자의 표시명입니다.
appid스트링인증 요청에 지정된 애플리케이션 ID입니다.
pfpid스트링토큰 요청에 지정된 디플로이의 제품 ID입니다.
pfsid스트링토큰 요청에 지정된 디플로이의 샌드박스 ID입니다.
pfdid스트링토큰 요청에 지정된 디플로이 ID입니다.

위 예제의 토큰을 사용하면 페이로드를 디코딩하여 다음이 포함되어 있는지 확인할 수 있습니다:

{
"aud": "xyza7891lhxMVYGCON7LgnKZZ8HQGD5H",
"sub": "9626f441055349ce8cb7d7d5a483eaa2",
"t": "epic_id",
"scope": "basic_profile friends_list presence",
"appid": "fghi4567O03HROxEjwbn7kgXpBhnhWwv",
"iss": "https://api.epicgames.dev/epic/oauth/v1",
"dn": "Krnbry",
"exp": 1588286083,
"iat": 1588278883,
"nonce": "n-B5pclIvZJBZAMJL5l6GoRrCO3bE=",
"jti": "64c30d0298a3437c8a74e5901c3486b5"
}

계정 가져오기

액세스 토큰에 있는 정보 외에 로그인한 계정 또는 애플리케이션과 상호작용한 다른 계정에 대해서도 유사한 정보를 요청할 수 있습니다.

개인정보 보호를 위해 애플리케이션 사용에 이미 동의한 사용자의 계정 정보만 요청할 수 있습니다.

이 계정 정보 엔드포인트는 https://api.epicgames.dev/epic/id/v1/accounts 입니다. 이 엔드포인트를 호출할 때는 리졸브하려는 계정의 accountId 쿼리 파라미터를 하나 이상 지정해야 합니다. 요청 하나당 계정 50 개로 제한됩니다.

다음은 여러 계정을 가져오는 요청 샘플을 보여주는 코드 조각입니다:

GET /epic/id/v1/accounts?accountId=foo531f86d911d74f4aa8399849e9ca9ba6&accountId=barcbab941052f540c69fbd92ddc3bf9027 HTTP/1.1
Host: api.epicgames.dev
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer [token]eyJ0IjoiZXBpY19pZCIsImFsZyI6IlJTMjU2Iiwia2lkIjoibldVQzlxSFVldWRHcnBXb3FvVXVHZkFIYmVWM2NsRnlsdFRYMzhFbXJKSSJ9.eyJhdWQiOiJ4eXphNzg5MWxoeE1WWUdDT043TGduS1paOEhRR0Q1SCIsInN1YiI6Ijk2MjZmNDQxMDU1MzQ5Y2U4Y2I3ZDdkNWE0ODNlYWEyIiwidCI6ImVwaWNfaWQiLCJzY29wZSI6ImJhc2ljX3Byb2ZpbGUgZnJpZW5kc19saXN0IHByZXNlbmNlIiwiYXBwaWQiOiJmZ2hpNDU2N08wM0hST3hFandibjdrZ1hwQmhuaFd3diIsImlzcyI6Imh0dHBzOlwvXC9hcGkuZXBpY2dhbWVzLmRldlwvZXBpY1wvb2F1dGhcL3YxIiwiZG4iOiJLcm5icnkiLCJleHAiOjE1ODgyODYwODMsImlhdCI6MTU4ODI3ODg4Mywibm9uY2UiOiJuLUI1cGNsSXZaSkJaQU1KTDVsNkdvUnJDTzNiRT0iLCJqdGkiOiI2NGMzMGQwMjk4YTM0MzdjOGE3NGU1OTAxYzM0ODZiNSJ9.MZRoCRpjIb--dD7hxoo2GvjSPhUSNpOq1FhtShTBmzMJ1qlHFPzNaUiAEETAc3mabGPKyOxUP6Q1FBadr_P_UtbtB7kf34hN2VTv5czW6WOx1HdpjwUQZuxFyDc_aix7FCS0Egu4rZlC65b-B0FUVlial_s_FrH8ou5L_d-4I0KVpIwtv-b_M6EQ9jtLdQRfMaP6aV0rIerrbqFZ617Pe7XT4IO9jZFwM8F5aDTeDHkkOO41wyVibrm38799lP4B65RIv9CwbAL-TVmV1L5gFYITaZhi5ShfZzTvxAk-3Dxwp8c5JvcO68zpbya5gFSAfhsd7vt9YLU0gQR2uXq3Vw

다음은 이 요청의 응답 예시를 보여주는 코드 조각입니다:

[
{
"accountId": "531f86d911d74f4aa8399849e9ca9ba6",
"displayName": "eas_user",
"preferredLanguage": "en",
"linkedAccounts": [
{
"identityProviderId": "xbl",
"displayName": "eas_user_xbl"
}
]
},
{
"accountId": "cbab941052f540c69fbd92ddc3bf9027",
"displayName": "other_user",
"preferredLanguage": "en"
}
]