Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

얼렁뚱땅개발로그^__^

[ vue.js ] 카카오톡 로그인 api (feat. typescript) 본문

Vue.js

[ vue.js ] 카카오톡 로그인 api (feat. typescript)

나니로그 2023. 3. 2. 16:40

카카오톡 api 로그인를 다시 연결하면서 vue3에서 타입스크립트로 적용하려고 했다. 그러나 index.html에 sdk를 연결하고 main.ts 에 자바스크립트 키를 연결하는 과정에서 kakao를 window에서 가지고 오지 못하는 이슈가 생겼다 

그래서 검색해보니 나와 같은 이슈를 겪은 사람이 있어서 참고 했다. https://uminoh.tistory.com/51

 

[typescript] Use Kakao Share Api On Vue 3 & Typescript

서비스에 카카오톡 공유하기를 구현하기가 목표였다. kakao developers API 사이트에서 '메시지 - 카카오톡 공유' 문서를 읽고 구현하는 데까지는 어렵지 않았다. 다만, 환경이 typescript 환경이다 보니

uminoh.tistory.com

 

일단 npm으로 kakao-js-sdk를 설치해줬다.  전역으로 사용하기 위해 main.ts에 아래와 같은 코드를 추가했다.

 

npm install

 npm i kakao-js-sdk

 

main.ts import하기

// main.ts

import { initKakao } from "kakao-js-sdk";

initKakao("자바스크립트 키");

 

.env 환경설정

VITE_APP_KAKAO_REFIRECT="url" 

 

Login.vue 에서 카카로 로그인 api 활용하기

<v-btn color="#fae100" block @click="doKakaoLogin">
<v-icon class="chatIcon">mdi-chat</v-icon>카카오 로그인
</v-btn>

<script lang="ts" setup>
import { useRouter, useRoute } from "vue-router";
import { ref } from "vue";

const router = useRouter();
const route = userRoute();

const isShow = ref(false);

const doKakaoLogin = () => {
	const params = {
    	redirectUri: import.meta.env.VITE_APP_KAKAO_REDIRECT,
    }
    window.Kakao.Auth.authorize(params);
}
</script>

params로 리다이렉트 uri를 전달해주면 카카오로그인 페이지가 나온다. 

 

로그인을 실행하면 리다이렉트 uri의 url뒤에 쿼리스트링으로 code를 전달해준다. 

 

useRoute를 활용해서 쿼리스트링에 있는 값을 콘솔로 출력.

import { useRouter, useRoute } from "vue-router";

const route = useRoute();
console.log(route.query);

 

쿼리로 받아온 인증코드를 활용하여 token 받아오기

const getKakaoToken = async (token: any) => {
  const kakaoHeaders = {
    Authorization: "--- admin key ---",
    "Content-type": "application/x-www-form-urlencodedlcharset=utf-8",
  };
  let params = {
    grant_type: "authorization_code",
    client_id: "041576102e9613c9acb57fb766533896",
    redirect_uri: import.meta.env.VITE_APP_KAKAO_REDIRECT,
    code: kakaoCode.value.code,
    // client_secret: "JHQYbs9IKYmzFzRcKWgEdut8Ucqoy9vq",
  };
  if (token) {
    let data = await Axios.post(
      import.meta.env.VITE_APP_KAKAO_API +
        `/oauth/token?grant_type=${params.grant_type}&client_id=${params.client_id}&redirect_uri=${params.redirect_uri}&code=${params.code}`,
      { headers: kakaoHeaders }
    );
    console.log(data);
  }
};
getKakaoToken(kakaoCode.value.code);

 

처음엔 쿼리스트링으로 넣은 부분을 json 형태로 넣어줬더니 자꾸 오류가 나는 것이 아닌가....

위와 같은 오류가 자꾸 났지만..나는 client_secret 설정을 활성화 하지 않았음에도 불구하고 자꾸 같은 이슈가 발생했다. 그래서 검색해본 결과

 

https://velog.io/@denmark-choco/kakao-Login-API-KOE010401 이  블로그 내용을 발견하게 되었다.

쿼스크트링 형태로 전달하니까 성공해서 access_token을 얻을 수 있었다.

 

 

 

https://kdinner.tistory.com/92

 

javascript - 카카오 로그인 with Vue.js

목표 Vue.js를 이용하여 카카오 로그인 카카오 AccessToken, RefreshToken 가져오기 유저 정보 가져오기 준비물 developers.kakao.com/ REST API 키 Javascript 키 Admin 키 Flow 인증 코드 요청 (javascript SDK) 받은 인증 코

kdinner.tistory.com

https://yoyostudy.tistory.com/42

 

[Vue js] 카카오 로그인 연동

1. Kakao Developers 셋팅 - https://developers.kakao.com Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. deve

yoyostudy.tistory.com