개발환경
Kakao SDK for JavaScript (v1.43.1)
NextJS (^13.4.9)
안녕하세요.
A사이트와 B사이트를 개발중 입니다.
A사이트에서는 프레이머로 만든 홈페이지라 별도의 JS 작업이 어려워
내부 ‘이동하기’ 버튼을 눌렀을 때, B사이트로 넘어가면서
사용자에게 카카오 토큰이 없을 경우,
카카오톡 로그인창을 보여주고 싶습니다.
그래서 B사이트 내부 page에
useEffect(() => {
window.Kakao.Auth.authorize({
redirectUri,
scope:
'phone_number, account_email, name, gender, birthday, birthyear, plusfriends',
});
}, []);
위와 같이 바로 실행시키고 싶은데
TypeError: Cannot read properties of undefined (reading ‘Auth’)
와 같이 에러가 발생합니다.
이 부분 해결 방법이 없을까요?
_app.tsx 에서 스크립트 삽입 및 초기화 해놓은 상태입니다.
const kakaoInit = useCallback(() => {
if(window.Kakao.isInitialized()) {
return;
}
window.Kakao.init(process.env.NEXT_PUBLIC_KAKAO_JS_KEY);
}, []);
<Script
src={'https://developers.kakao.com/sdk/js/kakao.js'}
onLoad={kakaoInit}
></Script>
window undefined 문제도 해결하기 위해 아래와같이 코드도 추가해놓았습니다.
declare global {
interface Window {
Kakao: any;
}
}