npm i --save kakaojs
const kakaoPromise = () => {
return new Promise((onSuccess, onReject) => {
Kakao.init("앱키 소환");
Kakao.Auth.login({
success: params => {
onSuccess(params);
},
fail: errorObj => {
onReject(errorObj);
}
});
});
};
init
으로 카카오 앱키를 적용
- 로그인 함수를 생성
const kakaoLoginFnc = async () => {
try {
const kakaoResult = await kakaoPromise();
const requestFromKaKao = await fetch(`${URL.SMS_URL}/kakao`, {
method: "POST",
headers: { Authorization: kakaoResult.access_token }
});
if (requestFromKaKao.status === 200) {
const authorization = await requestFromKaKao.json();
window.localStorage.setItem(
"Authorization",
authorization.Authorization
);
history.push("/");
}
} catch (error) {
console.log(error);
alert("다시 시도 바랍니다.");
}
};
async
, await
가 카카오 함수 내에서는 실행이 불가임으로 promise
로 선언한
kakaoPromise 함수를 kakaoLoginFnc 함수 내에서 실행
try
, catch
로
카카오 호출 성공시: fetch
로 headers에 카카오에서 받은 Token을 넣어서 post
로 요청, 응답 후 localStorage
로 저장 후 메인 페이지로 이동
카카오 호출 실패시: alert
창으로 에러 메세지 화면에 도출