Swift 카카오 로그인 상태 유지 및 로그아웃 기능 구현

iOS 앱에서 카카오 로그인하기를 구현중입니다. 카카오 로그인은 되었는데 앱 종료 후에도 로그인 상태를 유지할려고 합니다 또한 로그아웃을 만들려고 하는데 잘 안됩니다… 이런 기능을 구현해본 적이 없어서 애를 쓰고 있습니다. 조언좀 부탁드립니다 ㅠㅠ

안녕하세요!
iOS SDK를 사용하신다면 사용자 인증(로그인)은 SDK가 내부적으로 처리 및 관리합니다.
그래서 로그인과 로그아웃을 호출하기만 하면 되죠.

애플리케이션을 종료한 후에도 로그인을 유지하고 싶다고 하셨는데요,
좀 더 의미를 명확하게 이해하고자 다음 중 어떤 상태를 원하는 것인지 확인 부탁 드릴게요.

  • 다시 실행했을 때 자동으로 재로그인이 되는 상태
  • 애플리케이션이 종료되지 않고 백그라운드에 남아 있는 상태일 때 로그인이 유지되어 있는 상태

카카오 로그인은 OAuth 2.0을 지원합니다.
사용자 인증이 유효하다면 코드를 받고, 코드로 토큰을 받고, 토큰을 사용해 로그인(인증)을 완료하는 방식입니다.
토큰은 인증을 위한 액세스토큰, 액세스토큰이 만료되면 재발급 받을 때 쓰는 리프레시 토큰 두 가지가 있습니다.

따라서 토큰을 어떻게 활용하는지가 로그인과 로그아웃의 핵심이 됩니다.
처음 로그인할 때는 인증, 코드, 토큰 발급의 단계를 거치지만 이후에는 액세스 토큰을 가지고 로그인하고,
로그아웃할 때는 토큰을 없애 다시 인증 절차를 수행하도록 합니다.
이렇게 하면 사용자가 매번 '카카오 로그인’을 거치지 않아요.

로그인 상태가 토큰 활용과 직결되기 때문에, 이 부분에 대해 차근차근 이해해보시는 게 중요할 것 같아요.
OAuth 2.0에 대해서는 링크 페이지를 참고해 주세요.

1개의 좋아요

다시 실행했을 때 자동으로 재로그인이 되는 상태를 원합니다. 그러면 굳이 이메일을 데이터베이스에 저장하지 않고도 토큰으로만 로그인이 가능한가요?

1개의 좋아요

@leegyuhyeon21
SDK에서는 명시적인 로그아웃(unlink, close 포함) 요청이 있기 전까지는 발급받았던 토큰을 보관하고 있습니다.
리프레시 토큰이 만료기간(2달)이 지나지 않았다면 다시 실행했을때 로그인 없이 바로 user/me등의 API 호출이 가능합니다.

1개의 좋아요