[js kakao 로그인 처리] promise를 이용해서 v2/user/me의 결과를 resolve하면 2번째부터 작동되지 않습니다. (새로고침 후 가능)

promise를 이용해서 v2/user/me의 결과를 resolve하면 2번째부터 작동되지 않습니다. (새로고침 후 가능)
첫번째는 잘 작동하지만 2번째부터는 await를 통과하지 못 합니다.
새로고침을 해야지 작동합니다…

api 응답을 보면 2번째부터도 잘 응답하고 있습니다.
api 쪽 문제라기보다는 promise에서 resolve가 정상적으로 못 빠져나오는것 같은데… 해결방법을 모르겠네요

무엇이 문제일까요…

const kakaoLogin = () => new Promise((resolve, reject) => {
    if (!window.Kakao.isInitialized()) {
      window.Kakao.init(process.env.KAKAO_JS_KEY)
    }

    window.Kakao.Auth.login({
      success () {
        window.Kakao.API.request({
          url: '/v2/user/me',
          success (result) {
            resolve(result)
          }
        })
      },
      fail (error) {
        console.error('kakao', error)
        return reject(error)
      }
    })
  })

console.log(await kakaoLogin())

안녕하세요.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다

ex) 123456

729115 입니다

팝업 로그인의 경우 Promise 내에서 처리시 경우에 따라 브라우저에의해 차단됩니다.

이 부분은 회피하실수 없을거 같습니다. Promise를 제거하시고 사용자 이벤트에 직접 연결하시길 부탁드립니다.

1개의 좋아요