카카오 로그인 웹 기본적인 질문 있습니다

안녕하세요 웹프론트쪽에서 카카오로그인 api 를 사용하려고 합니다.

먼저 헷갈리는 부분이, javascript 와 rest api 두 가지 방법을 다 사용할 수 있는건가요?
javascript 로 하는것과 rest api 로 구현하는 방법이 어떻게 다른지 이해가 잘 안됩니다

그리고 javascript 부분을 보다보니까 인가코드 받거나 토큰 발급받는 부분은 또 rest api 방식을 사용해야되던데
그럼 그 두 가지 방법이 섞어져서 사용할 수 있는건가요?

그리고 제가 일단 javascript 방법으로 구현해보고 있는데요,

로그인하기 버튼을 사용자가 누르면 모달창이 뜨고, 그 모달 안에 카카오 로그인 버튼을 넣었습니다.
카카오 로그인 버튼을 누르면
const params = {
redirectUri:‘http://localhost’,
}
window.Kakao.Auth.authorize(params);
이 코드 때문에

kauth.kakao.com/oauth/authorize?client_id=어쩌구
이 주소로 넘어가는데요, 이렇게 다른 페이지로 넘어갈 수밖에 없는건가요?
사용자가 볼 때 다른 페이지로 넘어가지 않고 기존 페이지에서 동의 화면을 띄울 수는 없나요?

인가코드랑 토큰 발급 과정을 거치려면 무조건 그 페이지에서 벗어나야 되는건가요?

window.Kakao.Auth.authorize(params);
이 코드말고

  window.Kakao.Auth.login({
    success: function () {
      window.Kakao.API.request({
        url: '/v2/user/me',
        data: {
          property_keys: [

이걸로 하면 (사용자 정보 받아오는거요)

만약 연결이 안되어있으면 카카오 로그인 버튼 누르면 다른 페이지로 넘어가지 않고
바로 작은 새로운 창이 뜨고 거기서 동의하기를 누를 수 있던데요…

근데 window.Kakao.Auth.authorize() 이 코드가 반드시 필요한거잖아요??
인가코드 받고 토큰을 발급받으려면요ㅜㅜ 맞나요???

다시 검색하다가 보니까 window.Kakao.Auth.authorize() 코드 없이 바로
window.Kakao.Auth.login({
success: function () {
window.Kakao.API.request({
url: ‘/v2/user/me’,
data: {
property_keys: [
이 코드를 사용하면 인가코드 받는 과정을 자동으로 해준다고 하는 블로그를 봤는데요!! 정말인가요??

아래 코드처럼

  window.Kakao.Auth.login({
    success: function () {
      window.Kakao.API.request({
        url: '/v2/user/me',
        data: {
          property_keys: [
            "kakao_account.email", 
            "kakao_account.name", 
            "kakao_account.age_range", 
            "kakao_account.birthday", 
            "properties.nickname"  
          ]
        },
        success: async function (response) {
          console.log("kakao login success");
          console.log(response);

          var accessToken = Kakao.Auth.getAccessToken(); // 액세스 토큰 할당
          Kakao.Auth.setAccessToken(accessToken); // 액세스 토큰 사용하게 등록 
          console.log("accessToken: " + accessToken);

이렇게 해보니까 accessToken 이 콘솔에 찍혀나오긴 하는데 이렇게 구현해도 되나요??

안녕하세요

먼저 헷갈리는 부분이, javascript 와 rest api 두 가지 방법을 다 사용할 수 있는건가요?

선택적으로 사용하실 수 있습니다.
JS SDK Kakao.Auth.authorize() 방식을 리다이렉트 된 이후는 rest api 방식으로 토큰조회 및 사용자 정보조회 하셔야합니다.

인가코드랑 토큰 발급 과정을 거치려면 무조건 그 페이지에서 벗어나야 되는건가요?

네, 인가 요청하는 측에 접근하여 카카오 로그인 및 제3자 정보제공동의 후, 리다이렉트 해서 제공하시는 서비스로 돌아가는 것이 OAuth 2 표준입니다.

사용자가 볼 때 다른 페이지로 넘어가지 않고 기존 페이지에서 동의 화면을 띄울 수는 없나요?

Kakao.Auth.login() 을 사용하시면 됩니다. 현재 페이지에서 팝업으로 동의창 띄우고 팝업내 통신(토큰발급) 합니다.


아래 예제 참고해보시겠어요?

[Javascript SDK 예제] 카카오 로그인, 카카오링크, 채널추가

1개의 좋아요

감사합니다. 많은 도움 되었습니다!