Auth/status.js

import { isFunction } from '../util'
import { validate } from '../common'
import { getAccessToken } from './secret'
import { request } from '../API/request'

/**
 * @alias AuthStatusCallback
 * @callback AuthStatusCallback
 * @param {Object} statusObj
 * @param {String} statusObj.status "connected" 또는 "not_connected"
 * @param {Object} statusObj.user 로그인 상태일 때만 전달되는 [사용자 정보](https://developers.kakao.com/docs/latest/ko/kakaologin/common#user-info)
 * @memberof Kakao.Auth
 */
/**
 * @description 현재 로그인 상태를 반환합니다.
 * @function getStatusInfo
 * @param {AuthStatusCallback} [callback] 로그인 상태를 받을 콜백 함수
 * @memberof Kakao.Auth
 */
export function getStatusInfo(callback) {
  validate(callback, isFunction, 'Auth.getStatusInfo')

  if (!getAccessToken()) {
    callback({
      status: 'not_connected'
    })
  } else {
    request({
      url: '/v2/user/me',
      success(res) {
        callback({
          status: 'connected',
          user: res,
        })
      },
      fail() {
        callback({
          status: 'not_connected',
        })
      },
    })
  }
}