logout()
logout()은 MonitorDog SDK 사용자 세션을 종료하는 함수입니다.
역할
logout()이 호출되면 SDK는 내부적으로 다음 작업을 순서대로 수행합니다.
logout activity event 전송
-> SDK access token 제거
-> SDK session/auth 상태 정리
파라미터
logout()은 별도 파라미터를 받지 않습니다.
await detector.logout();
SDK는 login() 시점에 저장한 access token과 사용자 상태를 기준으로 logout 처리를 수행합니다.
반환값
logout()은 값을 반환하지 않습니다.
일반적으로 고객사 application code에서는 실행 중인 detector를 stop()으로 먼저 중지한 뒤 await detector.logout()을 호출합니다. detector instance를 더 이상 사용하지 않는 경우 dispose()까지 호출해 resource를 완전히 해제합니다.
dispose()와의 차이
logout()은 사용자 세션 종료를 의미합니다. 가능하면 logout activity event를 전송한 뒤 SDK token과 session 상태를 정리합니다.
dispose()는 detector instance가 사용하던 resource를 즉시 해제하는 함수입니다. 페이지 종료, React component unmount, detector instance 폐기처럼 더 이상 SDK를 사용하지 않는 시점에 호출합니다.
사용자 로그아웃처럼 세션 종료 의미가 필요한 경우에는 stop() 후 logout()을 호출하고, instance까지 폐기해야 한다면 finally에서 dispose()를 호출하는 흐름을 권장합니다.
try {
detector.stop();
await detector.logout();
} finally {
detector.dispose();
}
주의사항
logout()은 사용자가 고객사 웹사이트에서 로그아웃한 뒤 호출하는 것이 좋습니다.logout()은 customer session cookie나 고객사 backend session을 직접 삭제하지 않습니다.- detector가 실행 중이면
DETECTOR_RUNNING에러를 던집니다. - 실행 중인 detector는 먼저
stop()으로 중지해야 합니다. logout()은 MonitorDog SDK access token과 session 상태를 정리합니다.logout()이 실패하더라도 detector resource를 폐기해야 하는 화면 종료 흐름에서는finally에서dispose()를 호출하는 것이 좋습니다.- 같은 detector instance로 다시 실행하려면
login()후start()를 다시 호출해야 합니다.