3. 사용자 인증하기
getInstance 에 사용자 토큰을 넘기면 회원으로, 넘기지 않으면 게스트로 시청합니다. 토큰이 거부되어도 오류가 발생하지 않으므로 확인 방법을 함께 다룹니다.
게스트와 회원, 두 가지 상태
인증 방식은 한 가지로, getInstance 에 token 을 넘기는지 여부로 결정됩니다.
판단할 것은 회원 기능 필요 여부 하나입니다.
| 게스트 | 회원 | |
|---|---|---|
token | nil 로 두거나 생략 | 발급받은 사용자 토큰 전달 |
| 시청 | 가능 | 가능 |
| 채팅 | 닉네임을 입력하면 가능 → 4. 채팅 사용하기 | 회원 닉네임으로 바로 가능 |
| 쿠폰·이벤트 참여 | 제한됩니다 | 가능 |
| 시청 이력·통계 | 단말 기준으로만 남습니다 | 회원 기준으로 남습니다 |
게스트 계정 자동 발급
token 을 넘기지 않아도 아무 인증 없이 동작하는 것이 아닙니다.
SDK 가 임시 계정을 자동으로 발급받아 단말에 보관합니다.
-
1SDK 가 임시 닉네임을 만들어 게스트 토큰을 발급받습니다.
-
2발급된 토큰을 단말에 저장합니다. 같은 앱에서 다시 시청하면 그 계정을 재사용합니다.
-
3앱이 할 일은 없습니다. 발급·보관·재사용이 모두 SDK 안에서 일어납니다.
💡 웹 SDK 의 게스트와 다릅니다 — 웹은 게스트가 식별자 없이 동작하지만, 앱은 임시 계정을 발급받습니다. 그래서 게스트도 채팅에 참여할 수 있습니다.
회원으로 연결하기
앞 단계에서 nil 로 두었던 token 자리에 발급받은 사용자 토큰을 넣습니다.
이것이 인증의 전부입니다.
Swift
let player = SauceLivePlayerClient.getInstance( broadcastID: "라이브 ID", token: "발급받은 사용자 토큰", // ← 이 값만 추가하면 회원 시청 viewController: self ) player.startPlayer()
💡 토큰은 어디서 받나요 — 자사 백엔드가 소스라이브 규격으로 만들어 앱에 내려 줍니다. 앱이 직접 발급받는 경로는 제공되지 않습니다. 생성 규격은 JWT 토큰 생성 가이드에 있습니다.
토큰 거부 시 동작
가장 주의할 동작입니다.
토큰이 잘못되었더라도 오류가 발생하지 않습니다. 플레이어는 그대로 실행되고, 시청자만 게스트가 됩니다.
⚠️
onError 로 전달되지 않습니다 — 앱은 토큰이 거부되었는지 알 수 없습니다. 회원 연동을 테스트할 때는 플레이어 안에 표시되는 닉네임으로 확인하세요. 회원 닉네임이 아니라 임시 닉네임이 보이면 토큰이 거부된 것입니다.
| 증상 | 확인할 것 |
|---|---|
| 임시 닉네임이 보인다 | 토큰이 만료되었거나 다른 파트너의 토큰일 수 있습니다. 발급 시점과 대상 파트너를 확인하세요 |
| 회원 기능이 제한된다 | 같은 원인입니다. 게스트로 시청 중이므로 쿠폰·이벤트 참여가 막힙니다 |
로그인이 필요한 순간 처리하기
게스트가 회원 전용 기능을 누르면 플레이어가 「로그인 하시겠습니까?」 를 띄웁니다.
시청자가 「로그인」 을 선택하면 onLogin 이 호출됩니다 — 이때 앱이 자기 로그인 화면을 열어야 합니다.
Swift
player.onLogin = { [weak self] in
// 앱의 로그인 화면을 띄운다
self?.presentLoginScreen()
}
⚠️ 로그인 후 플레이어에 자동 반영되지 않습니다. 로그인이 끝나면 새 토큰으로 플레이어를 다시 실행해야 회원으로 바뀝니다.
closePlayer() 로 닫고 getInstance 를 다시 호출하세요.
💡 이 콜백을 등록하지 않으면 시청자가 「로그인」 을 눌러도 아무 일도 일어나지 않습니다. 게스트 시청을 허용한다면 반드시 등록하세요.
Updated about 1 hour ago
Did this page help you?