GuidesAPI GuideChangelog
Log In
Guides

3. 사용자 인증하기

startLivePlayer() 에 사용자 토큰을 넘기면 회원으로, 넘기지 않으면 게스트로 시청합니다. 게스트도 SDK 가 임시 계정을 자동 발급받지만, 채팅 참여 여부는 방송 설정이 정하고 회원 전용 기능은 제한됩니다.

3. 사용자 인증하기 — 소스라이브 플레이어 Android SDK
예상 소요 시간: 10~30분 (토큰 발급 방식에 따라 상이)
📋 사전 조건: 2. 플레이어 실행하기 완료
게스트와 회원, 두 가지 상태

인증은 토큰을 넘기는지 여부 하나로 갈립니다.
토큰을 넘기지 않으면 게스트 모드로 실행되며, 회원 전용 기능만 제한됩니다.

게스트회원실제 서비스 권장
호출 token 을 넘기지 않음
(또는 null)
token = "발급받은 사용자 토큰"
계정 SDK 가 임시 계정을 자동 발급 자사 회원 계정
닉네임 GUEST + 10자리 난수
(설정에 따라 시청자가 직접 입력)
토큰 발급 시 지정한 닉네임
회원 구분값 memberType: "0" (비회원) memberType: "1" (회원)
채팅 방송 설정에 따라 갈립니다
게스트 참여를 허용하면 닉네임을 입력받아 채팅
허용하지 않으면 로그인 안내가 뜨고 onLoginRequest 가 호출됩니다
플레이어는 닫히지 않습니다
바로 가능
회원 전용 기능 제한 — 찜한 상품 등 memberType 이 회원일 때만 노출되는 기능이 있습니다 전체 사용
준비물 없음 토큰 발급 경로 1개 (아래)
📘 게스트 모드 우선 확인 — 토큰 없이 플레이어 실행을 확인한 뒤 회원 연동을 붙이면, 문제가 생겼을 때 원인이 인증인지 아닌지 구분됩니다.
게스트 계정 자동 발급

토큰을 넘기지 않으면 SDK 가 임시 계정을 서버에서 발급받아 사용합니다.
발급된 토큰은 기기에 저장되어 다음 실행에 재사용됩니다.

  • 1
    토큰을 넘기지 않은 상태로 플레이어를 실행하면, 기기에 저장된 게스트 토큰이 있는지 확인합니다.
  • 2
    없으면 GUEST + 10자리 난수 닉네임으로 임시 계정을 발급받습니다.
  • 3
    발급된 토큰을 기기에 저장합니다. 다음 실행에서는 같은 게스트로 인식됩니다.
📘 게스트가 무엇을 할 수 있는지는 방송 설정이 정합니다. 게스트 채팅 참여를 허용할지, 닉네임을 직접 입력받을지, 약관 동의·추가 정보를 수집할지가 서버 설정으로 제어됩니다. 코드로 바꾸는 값이 아니므로, 필요한 동작이 있으면 모비두 담당자 또는 카카오톡 채널로 문의하세요.
회원으로 연결하기

앞 단계에서 null 로 두었던 token 자리에 발급받은 토큰을 넣습니다.

Kotlin
SauceClient.startLivePlayer(
    context     = this,
    broadcastId = "라이브 ID",
    token       = userAccessToken   // 자사 로그인 사용자의 토큰
)
토큰 발급 위치

앱이 소스라이브에 직접 토큰을 요청하는 방법은 제공되지 않습니다.
자사 백엔드가 토큰을 만들어 앱에 내려 주는 구조가 유일한 경로입니다.

  • 1
    사용자가 앱에 로그인하면 자사 서버가 회원을 확인합니다.
  • 2
    자사 서버가 소스라이브 규격으로 토큰을 만들어 앱에 응답합니다.
    닉네임·회원 식별자·회원 구분 같은 정보를 토큰 안에 담습니다.
  • 3
    앱은 받은 토큰을 startLivePlayer()token 에 그대로 전달합니다.
    앱의 역할은 전달까지입니다. 토큰을 해석하거나 가공하지 않습니다.
📘 비밀키가 서버에만 있어 안전합니다. 앱을 분석해도 토큰을 위조할 수 없습니다. 그래서 앱에서 직접 발급받는 경로를 두지 않습니다.
📘 토큰 생성 규격 — 서버에서 어떤 형식으로 만들어야 하는지는 JWT 토큰 생성 가이드에 정리되어 있습니다.
토큰 거부 시 동작

전달한 토큰이 유효하지 않으면 시청자에게 오류를 보여 주지 않고 게스트 계정으로 대체합니다.
플레이어는 정상적으로 재생되므로, 로그인했는데 게스트로 보이는 상황이 생길 수 있습니다.

증상가장 흔한 원인확인 방법
로그인했는데 닉네임이 GUEST… 로 보임 토큰이 만료·위조·형식 오류로 검증에 실패해 게스트로 대체됨 Logcat 에서 SauceLive 태그의 validationToken 로그 확인
회원 전용 기능이 보이지 않음 토큰이 회원(memberType: "1")으로 발급되지 않음 토큰 발급 시 회원 구분값을 확인
이전 시청자의 게스트 닉네임이 계속 유지됨 기기에 저장된 게스트 토큰을 재사용하기 때문 정상 동작입니다. 회원으로 전환하려면 토큰을 전달하세요
⚠️ 토큰 오류는 예외를 던지지 않습니다. 검증에 실패하면 onError코드 30001 이 오고 게스트로 진행됩니다. 재생이 멈추지 않아 놓치기 쉬우므로, 실제 서비스 배포 전에 회원 닉네임이 플레이어에 제대로 표시되는지 함께 확인하세요. → Error codes
로그인이 필요한 순간 처리하기

게스트 참여가 허용되지 않은 방송에서 게스트가 회원 기능을 시도하면, 플레이어가 로그인 안내를 표시한 뒤 앱에 알려 줍니다.
이때 앱의 로그인 화면으로 보내고, 완료 후 updateAccessToken() 으로 토큰을 전달합니다.

Kotlin
SauceClient.setLivePlayerCallbackListener(object : LivePlayerCallbackListener {
    override fun onLoginRequest(context: LoginRequestContext) {
        // context.feature  = 로그인을 요구한 기능 (CHAT, COUPON, REWARD, WISH, EVENT, NOTIFICATION)
        // context.resumeId = 로그인 후 이어서 처리할 대상 ID (쿠폰 ID 등). 없으면 null

        // 앱의 로그인 화면으로 이동. 로그인이 끝나면 아래 한 줄로 플레이어를 회원으로 전환합니다
        // SauceClient.updateAccessToken(newToken)
    }
})
📘 플레이어는 열린 채로 유지됩니다. 로그인이 끝나면 SauceClient.updateAccessToken(token) 을 호출하세요. 다시 실행하지 않아도 회원으로 전환됩니다.


Did this page help you?
🏠 소스라이브 🎬 소스클립 🔗 소스링크 📢 소스애드
🧩 API 가이드
🆕 최근 업데이트
💬 도움이 더 필요하신가요?
메일로 문의 카카오톡 채널로 문의
담당자에게 문의하기

궁금한 점이나 불편했던 점을 남겨주시면 담당자가 확인 후 답변드릴게요.

가이드 챗봇 BETA
* AI를 활용해 답변해서 사실과 다를 수도 있어요. 더 궁금한 사항은 '담당자에게 문의하기'를 이용해주세요.
💡 궁금한 솔루션(예: 라이브, 링크 등)을 함께 적어주시면 더 정확한 답변을 받을 수 있어요.