싱글 사인 온
작동 방식
사용자 인증용 일반 단일 계정에 복수의 서비스가 연결되어 있는 경우, 싱글 사인 온을 사용할 수 있습니다. 게임 웹사이트는 서비스로써 작동증용 일반 단일 계정에 복수의 서비스가 연결되어 있는 경우, 싱글 사인 온을 사용할 수 있습니다. 게임 웹사이트는 서비스로써 작동하므로 사용자는 자격 증명을 1회만 입력해도 됩니다. 그 이후로는, 연결된 서비스 중 하나를 열 때 사용자 인증은 이미 이루어진 것입니다.
상호작용 절차
- 미인증 사용자가 서비스 중 하나를 엽니다.
- 클라이언트가
Check user authentication 요청을 엑솔라 로그인 서버로 보내고 에러 401이 발생합니다. - 클라이언트가 사용자 인증 양식(로그인 위젯 혹은 로그인 UI)을 엽니다 .
- 사용자는 사용자 이름과 비밀번호 혹은 SNS를 통해 인증합니다.
- 클라이언트는 로그인 프로젝트에서 사용자를 인증합니다.사용자 세션 데이터는 엑솔라 로그인 서버에 저장됩니다. 서버는
login_uri
를 보내는데 이는redirect_uri
를 포함하며code
가 쿼리 매개변수에 있습니다.
- 클라이언트는 사용자를
redirect_uri
로 리디렉션 시킵니다. - 서버는
Generate JWT 요구를 보내서 JWT를 위한code
를 교환합니다. 사용자는 서비스 상에서 인증됩니다. - 사용자가 다른 서비스를 엽니다.
- 클라이언트는
Check user authentication 요청을 엑솔라 로그인 서버로 보내고login_uri
를 받는데 이는redirect_uri
를 포함하며 쿼리 매개변수에code
를 동반합니다. - 서버는
Generate JWT 요청을 보내서 JWT를 위한 수신한code
를 교환합니다. 사용자는 두 번째 서비스 상에서 인증됩니다.
상이한 서비스에 대한 접근권 구분
상이한 서비스에 대한 사용자 계정 접근권을 구분하기 위하여 다른 OAuth 2.0 클라이언트에scope=playfab
)의 특수한 값을 사용할 수 있습니다.사용자
로그인을 이미 통합했으며 엑솔라, Firebase 혹은 PlayFab을 사용하는 파트너.
획득 방법
싱글 사인 온 연결 방법:
OAuth 2.0 프로토콜 연결
지침를 따라 OAuth 2.0 프로토콜을 연결합니다. 모든 서비스에 하나의 OAuth 2.0 클라이언트를 사용하거나 모든 서비스 하나하나를 위한 별도의 OAuth 2.0 클라이언트를 생성할 수 있습니다.사용자 세션 가져오기 요청 호출
서비스를 열 때
요청 사례:
Copy
http
- http
- curl
GET https://login.xsolla.com/api/oauth2/sso?client_id=<client_id>&redirect_uri=<redirect_uri>&scope=<scope>&state=<state>&response_type=code HTTP/1.1
curl --request GET \
--url 'https://login.xsolla.com/api/oauth2/sso?redirect_uri=redirect_uri&response_type=code&state=state&scope=scope&client_id=client_id'
사용자 인증 시 응답 예제:
Copy
- http
HTTP/1.1 200 OK
Content-Type: application/json
{
"login_url": "<redirect_uri>?code=<code>"
}
사용자 JWT 획득 방법:
- 클라이언트는 사용자를 수신한
redirect_uri
로 리디렉션하는 요청을 구현하고 적용합니다. - 서버는 JWT를 얻기 위해
Generate JWT 요청과 함께 수신한code
및grant_type=authorization_code
를 보냅니다.
사용자 인증 실패 시 응답 예제:
Copy
- http
HTTP/1.1 401 Unauthorized
Content-Type: application/json
{
"error": {
"code": "003-040",
"description": "User is unauthorized."
}
}
이 기사가 도움이 되었나요?
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.