베스트 1207 카카오 로그인 Api 새로운 업데이트 8 일 전

주제에 대한 기사를 찾고 있습니까 “카카오 로그인 api“? 웹사이트에서 이 주제에 대한 전체 정보를 제공합니다 https://c1.castu.org 탐색에서: c1.castu.org/blog. 바로 아래에서 이 주제에 대한 자세한 답변을 찾을 수 있습니다. 찾고 있는 주제를 더 잘 이해하려면 끝까지 읽으십시오. 더 많은 관련 검색어: 카카오 로그인 api 카카오 로그인 API 예제, 카카오 소셜 로그인 구현, React 카카오 로그인, 카카오 로그인 DB 저장, 카카오 소셜 로그인, 카카오 로그인 구현, 카카오 로그인 api 연결끊기, 카카오 로그인 ID

[자바스크립트] 카카오 로그인 API 쉽게 구현 방법 및 예제

클라이언트 입장에서 수많은 사이트의 모든 아이디 비밀번호를 기억하기는 쉽지 않습니다. 또한 서비스를 제공해주는 리소스 오너 또한 안전하게 보관하여야 하기 때문에 부담되고요. 이런 문제를 해결하기 위해, 구글이나, 페이스북, 카카오 같은 큰 기업들이 로그인 연동 기능을 제공하고 있습니다. 그중 카카오 로그인을 구현해 보겠습니다.

먼저 내 javascript키를 호출하고 초기화가 잘 되었는지 확인합니다. 키를 정확하게 입력하고, 카카오 디벨로퍼에서 앱 활성화가 잘 되었다면, kakao.isInitKakao.isInitialized() 함수가 true를 반환해 줍니다.

10 thg 4, 2021 — 카카오 로그인의 흐름은 간단합니다. 리소스 오너(사이트)가 카카오 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 …

  • Source: tyrannocoding.tistory.com
  • Views: 101280
  • Publish date: 8 hours ago
  • Downloads: 13519
  • Likes: 4877
  • Dislikes: 1
  • Title Website: [자바스크립트] 카카오 로그인 API 쉽게 구현 방법 및 예제
  • Description Website: 10 thg 4, 2021 — 카카오 로그인의 흐름은 간단합니다. 리소스 오너(사이트)가 카카오 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 …

세부 정보를 보려면 여기를 클릭하십시오.

  • Source: Youtube
  • Views: 26813
  • Date: 10 hours ago
  • Download: 46605
  • Likes: 2629
  • Dislikes: 6

[자바스크립트] 카카오 로그인 API 쉽게 구현 방법 및 예제- OAuth 2.0, Javascript, Jsp

실제 구현 예

카카오 로그인 API (OAuth 2.0)

클라이언트 입장에서 수많은 사이트의 모든 아이디 비밀번호를 기억하기는 쉽지 않습니다. 또한 서비스를 제공해주는 리소스 오너 또한 안전하게 보관하여야 하기 때문에 부담되고요. 이런 문제를 해결하기 위해, 구글이나, 페이스북, 카카오 같은 큰 기업들이 로그인 연동 기능을 제공하고 있습니다. 그중 카카오 로그인을 구현해 보겠습니다.

카카오 로그인 API 흐름

카카오 로그인의 흐름은 간단합니다. 리소스 오너(사이트)가 카카오 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 체크하여 카카오 API 서버에 넘깁니다.

전달받은 정보를 가지고 카카오 API 서버는 데이터를 식별하고 클라이언트가 인증에 성공한 데이터를 통해 5~6시간 로그인을 유지할 수 있는 토큰을 발급해 줍니다. 우리는 단순하게 이 토큰을 활용하면 됩니다.

카카오 로그인 API 사용을 위한 애플리케이션 설정

개발의 흐름은 먼저 카카오 개발자 사이트에서 애플리케이션을 세팅을 한 후 사이트 코드를 작성해 주면 됩니다.

먼저 아래 사이트에서 회원가입을 합니다.

https://developers.kakao.com/

회원가입 후 내 애플리케이션 – 애플리케이션 추가하기에서 자유롭게 입력 후 저장합니다.

(* 차후 카카오 비즈니스로 업그레이드하실 것이 아니라면 아무렇게나 입력해도 무방합니다.)

만든 앱을 클릭하여 들어간 후 앱 설정의 플랫폼을 클릭하고, 카카오 로그인을 사용할 url을 등록합니다.

(테스트를 위해 저는 http://localhost:8181로 등록했습니다.)

사진1

사진2

url 등록 후 아래 버튼을 클릭한 후(사진 1)활성화(사진 2)를 해주시면 됩니다.

마지막으로 제품 설정에서 카카오 로그인- 동의 항목 – 동의 항목 설정을 해주시면 원하는 정보를 받을 수 있고, 앱 또한 활성화가 되었으므로 이제 정상적으로 카카오 로그인을 사용하실 수 있습니다.

(몇몇 항목들은 카카오 비즈니스로 가입하셔야 사용이 가능합니다. )

코드 – javascript & jsp

활성화가 되었기 때문에 이제 앱 키를 활용할 수 있습니다. javascript키를 활용해서 이제 코드를 작성합니다.

단순하게 해당 코드를 사용하고자 하는 html페이지나 jsp페이지에 붙여놓습니다.

먼저 내 javascript키를 호출하고 초기화가 잘 되었는지 확인합니다. 키를 정확하게 입력하고, 카카오 디벨로퍼에서 앱 활성화가 잘 되었다면, kakao.isInitKakao.isInitialized() 함수가 true를 반환해 줍니다.

그리고 아래는 카카오 로그인, 로그아웃에 대한 함수입니다. 위 예제만 잘 가공해서 사용한다면 멋진 카카오 로그인을 만드실 수 있습니다.

TIP

한번 로그인이 진행이되면 가입이되어, 동의 항목 없이 자동으로 넘어가집니다. 다시 처음부터 테스트를 해보고 싶으실 땐

accounts.kakao.com/weblogin/account/info

해당 사이트에서 연결 해제를 하고 다시 진행하시면 됩니다~

페이스북 로그인 구현 방법

tyrannocoding.tistory.com/50

구글 로그인 구현 방법

tyrannocoding.tistory.com/51

네이버 로그인 구현 방법

https://tyrannocoding.tistory.com/60

카카오 로그인 쉽게 구현하기 1편 – Kakao Developers 설정

클라이언트 입장에서 수많은 사이트의 모든 아이디 비밀번호를 기억하기는 쉽지 않다. 또한 서비스를 제공해주는 리소스 오너 또한 안전하게 보관하여야 하기 때문에 부담된다. 이런 문제를 해결하기 위해, 구글이나, 페이스북, 카카오 같은 큰 기업들이 로그인 연동 기능을 제공하고 있다.

카카오 로그인의 흐름은 간단하다. 리소스 오너(사이트)가 카카오 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 체크하여 카카오 API 서버에 넘긴다.

동의 항목을 설정한다. 닉네임, 프로필 사진, 성별, 생일 등 필요한 항목에 대해 동의 설정을 완료하면 카카오 로그인 인증 후에 설정한 동의항목에 대해서 응답데이터로 받을 수 있다.

16 thg 8, 2022 — 전달받은 정보를 가지고 카카오 API 서버는 인가 코드를 발급해주고 인가 코드를 통해 로그인을 유지할 수 있는 토큰을 발급해준다. 자세한 설명은 카카오 …

  • Source: notspoon.tistory.com
  • Views: 19922
  • Publish date: 32 minute ago
  • Downloads: 77602
  • Likes: 4246
  • Dislikes: 2
  • Title Website: 카카오 로그인 쉽게 구현하기 1편 – Kakao Developers 설정
  • Description Website: 16 thg 8, 2022 — 전달받은 정보를 가지고 카카오 API 서버는 인가 코드를 발급해주고 인가 코드를 통해 로그인을 유지할 수 있는 토큰을 발급해준다. 자세한 설명은 카카오 …

세부 정보를 보려면 여기를 클릭하십시오.

카카오계정으로 로그인하기 (카카오톡 로그인 API 사용하기)

  • Source: Youtube
  • Views: 32921
  • Date: 40 minute ago
  • Download: 68480
  • Likes: 8513
  • Dislikes: 9

카카오 로그인 쉽게 구현하기 1편 – Kakao Developers 설정

카카오 로그인 API

클라이언트 입장에서 수많은 사이트의 모든 아이디 비밀번호를 기억하기는 쉽지 않다. 또한 서비스를 제공해주는 리소스 오너 또한 안전하게 보관하여야 하기 때문에 부담된다. 이런 문제를 해결하기 위해, 구글이나, 페이스북, 카카오 같은 큰 기업들이 로그인 연동 기능을 제공하고 있다.

카카오 로그인 API 흐름

카카오 로그인의 흐름은 간단하다. 리소스 오너(사이트)가 카카오 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 체크하여 카카오 API 서버에 넘긴다.

전달받은 정보를 가지고 카카오 API 서버는 인가 코드를 발급해주고 인가 코드를 통해 로그인을 유지할 수 있는 토큰을 발급해준다.

자세한 설명은 카카오 개발자센터 API 문서를 참고하자.

카카오 로그인 API 연동

연동은 크게 3단계로 나눌 수 있다.

1. Kakao Developers 설정

2. 개발 환경 설정

3. 초기화 및 로그인 구현하기

Kakao Developers 설정

1. 내 애플리케이션 등록

https://developers.kakao.com/console/app

> “애플리케이션 추가하기” 를 클릭

> 앱 이름과 사업자명은 필수로 등록

2. 카카오 로그인 설정

1) 카카오 로그인 활성화

> 내 애플리케이션 -> 제품 설정 -> 카카오 로그인

> 카카오 로그인 활성화

2) Web 플랫폼 등록

카카오 로그인을 사용할 클라이언트 도메인 주소를 입력하는 항목이다.

로컬환경에서 테스트 예정이므로 여기서는 로컬에 띄울 클라이언트 페이지(http://127.0.0.1:8080)로 설정했다.

> 내 애플리케이션 -> 앱 설정 -> 플랫폼

> 도메인 입력 후 저장

3) Redirect URI 등록

카카오 로그인 활성화 설정 화면에서 아래로 스크롤 하면 Redirect URI 입력 항목이 보인다.

클라이언트가 카카오 로그인 후 Redirect 되는 URI를 입력해야한다. Redirect URL은 클라이언트 페이지 개발 후 입력 예정이다.

마찬가지로 로컬환경에서 테스트 예정이므로 여기서는 로컬에 띄울 클라이언트 페이지 주소(http://127.0.0.1:8080/kakao-login)로 설정했다.

> Redirect URI 클릭

> Redirect URI 입력 후 저장

4) 동의 항목 설정

동의 항목을 설정한다. 닉네임, 프로필 사진, 성별, 생일 등 필요한 항목에 대해 동의 설정을 완료하면 카카오 로그인 인증 후에 설정한 동의항목에 대해서 응답데이터로 받을 수 있다.

> 내 애플리케이션 -> 제품 설정 -> 동의항목

위 과정을 완료했다면 카카오 로그인 API 사용에 필요한 설정은 끝났다.

API에 필요한 Key만 확인해주자.

> 내 애플리케이션 -> 앱 설정 -> 카카오 로그인

관련글

2022.08.17 – [Web Programming] – 카카오 로그인 쉽게 구현하기 2편 – 개발 환경 설정

2022.08.17 – [Web Programming] – 카카오 로그인 쉽게 구현하기 3편 – 로그인 구현하기 (Spring Boot + Vue.js)

카카오톡 간편로그인의 시대는 오픈API가 만들었다 – 브런치

이렇게 에러가 뜰 경우를 안내해서 사용자의 행동패턴에 따른 상황별 대처법을 알 수 있다. 필자는 전문 개발자가 아니라 이 에러가 무엇을 의미하는지, 어떤 대처가 필요한지 정확히 알 수는 없지만 오픈API이기 때문에 기존 서비스가 개발된 환경과 사용자의 환경, 그리고 카카오가 제공하는 환경의 차이로 생기는 문제가 아닌가 예측해 본다. 오픈API를 제품개발에 사용하면 그 부분을 별도로 개발할 필요 없이 카카오가 사전에 잘 설계해둔 서비스를 그대로 가져와서 편리하게 사용하고 시간을 절약할 수 있으며 고객에게 익숙한 환경을 제공할 수 있다. 그러나 카카오가 정한 규칙을 활용하는 것이기 때문에 기존 서비스와 잘 호환하기 위한 노력이 필요할 수 있다고 판단되었다.

카카오 로그인 API기능은 인가코드받기 부터 동의철회하기 로 구성 되어 있다. 이 중 REST API 카카오 로그인은 인가코드받기 와 토큰받기 두 단계 를 거치는데 먼저 인가코드를 받고, 그 인가코드로 토큰을 요청한다. 인가코드 요청 단계에서 클라이언트에 카카오계정 정보 또는 카카오톡을 통해 사용자를 인증하는 과정을 거친다. 이후 동의 화면을 출력하고 사용자로부터 제3자 정보제공 등의 동의를 받아 인가 코드를 발급하는 구조이다. 이렇게 일부 과정에서만 REST API를 활용하므로 카카오 로그인 기능은 RESTful API는 아니다.

카카오는 로그인, 메세지, 지도, 채널 등 자사에서 개발한 서비스의 오픈API를 개발자들이 자유롭게 활용할 수 있도록 Kakao Developers 에서 제공하고 있다. 이렇게 기업은 자사가 공개한 API가 다양한 서비스에서 활용되어서 시장을 확대하는 것을 목적으로 운영하고 기상청과 같은 비영리기관은 공공의 목적으로 날씨 정보와 같은 오픈API를 제공하는 경우도 있다. 오늘의 주제인 카카오 로그인 오픈API를 자세히 살펴보자.

10 thg 3, 2022 — 카카오가 제공하는 오픈API _코드스테이츠 PMB 10기 | 요즘 어떤 웹사이트를 이용하든 소셜 계정을 이용하여 3초만에 간편하게 로그인을 할 수 있다.

  • Source: brunch.co.kr
  • Views: 49717
  • Publish date: 29 minute ago
  • Downloads: 101271
  • Likes: 479
  • Dislikes: 10
  • Title Website: 카카오톡 간편로그인의 시대는 오픈API가 만들었다 – 브런치
  • Description Website: 10 thg 3, 2022 — 카카오가 제공하는 오픈API _코드스테이츠 PMB 10기 | 요즘 어떤 웹사이트를 이용하든 소셜 계정을 이용하여 3초만에 간편하게 로그인을 할 수 있다.

세부 정보를 보려면 여기를 클릭하십시오.

Kakao API Javascript SDK #1편 | Daily Log – 개발노트 일상 \u0026 프로그래밍 편 | 카카오 API 로그인 구현 | REST API = 2편

  • Source: Youtube
  • Views: 68272
  • Date: 9 hours ago
  • Download: 4173
  • Likes: 5945
  • Dislikes: 1

카카오톡 간편로그인의 시대는 오픈API가 만들었다

요즘 어떤 웹사이트를 이용하든 소셜 계정을 이용하여 3초만에 간편하게 로그인을 할 수 있다. 와디즈, 무신사, 왓챠 등 접속하는 페이지는 달라도 ” 카카오” 가 들어간 로그인 버튼을 눌러서 간편하게 로그인이 되는 과정은 동일하다. 그 이유는 모든 플랫폼의 개발자가 “카카오 로그인” 기능을 넣을 때 카카오에서 무료로 제공한 오픈API를 사용하여 개발했기 때문이다.

오픈? API?? 오늘 글에서는 API의 개념과 카카오의 오픈API를 다뤄보고자 한다.

API 는 무엇인가?

A pplication P rogramming I nterface 의 줄임말로

어플리케이션을 프로그래밍 하는데 필요한 인터페이스(상호 정보 소통을 위한 시스템) 를 의미한다. 글자만으로 이해하기 어려운 이 개념은 IT아웃소싱 플랫폼 위시켓의 블로그에서 그림 예시로 설명하고 있다.

출처 = 위시켓 블로그 (https://blog.wishket.com/)

점원이 가져다준 메뉴판에서 손님이 스테이크를 고르면, 점원이 주문을 받아 요리사에게 요리를 요청을 한다. 요리사는 주문대로 스테이크를 만들어 점원에게 주고, 손님은 점원이 서빙한 스테이크를 먹을 수 있게 된다. 여기서 점원의 역할이 바로 API이다. 그 역할을 간결하게 정리 해 보자.

점원 = API = 손님과 요리사 사이의 상호작용을 도움

1. 손님에게 메뉴를 알려줌 = 클라이언트에게 명령할 목록을 정리하여 전달

2. 손님이 메뉴를 고르고 주문함 = 클라이언트가 목록을 보고 명령을 함

3. 요리사에게 주문받은 요리를 요청함 = 서버에게 명령의 값을 요청함

4. 주방에서 완성된 요리를 손님에게 전달함 = 서버에게 받은 명령의 값을 클라이언트에게 전달함

즉 서버와 클라이언트가 서로 정보를 어떻게 주고받을지 상호작용하는 것을 돕는 매개체인 API로 정의하고 프론트엔드와 백엔드 개발을 진행하는 것이다. 보통 웹서비스는 웹 주소형식(url)을 통해 정보를 요청하고 전달 받는 방식을 사용한다. 여기서 API는 3가지의 역할을 한다.

1. 서버와 데이터베이스의 출입구

2. 기기와 어플리케이션 프로그램의 원활한 통신

3. 모든 접속의 표준화 = 범용 플러그

그런데 API를 아무리 잘 설계해도 개개인이 필요한 방식에 맞게 다양하게 설계하면 유지보수 하는데 어려움이 있을 수 있다. 이런 문제를 해결하기 위해 일정한 아키텍처(*)의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 만들어 사용하기로 했다. 그 중 대표적인 방식이 RESTful API이다.

(*)정해진 목표를 달성하기 위한 전체적인 청사진으로 시스템 구성과 구성환경, 그리고 시나리오 등을 고려하여 시스템 최적화를 목표로함

RESTful ApI 는 또 무엇인가?

REST는 RE presentational S tate T ransfer의 약자로,

자원을 표시 (representation)하여 해당 자원의 상태를 주고 받는(State Transfer) 것이다 . 즉, 자원을 정의하고 자원에 대한 주소를 지정하는 방법 이다. REST의 구성요소는 3가지가 있다.

1. 자원(Resource): URI

모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.

자원을 구별하는 ID는 ‘/groups/:group_id’와 같은 HTTP URI 다.

Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다.

2. 행위(Verb): HTTP Method

HTTP 프로토콜의 Method를 사용한다.

HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 Method를 제공한다.

3. 표현(Representation of Resource)

Client가 자원의 정보에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.

REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation으로 나타낸다.

JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.

유튜브에서 이 개념을 쉽게 설명한 영상이 있어서 첨부해보았다.

REST API를 너무도 잘 설명해주신 유튜버를 소개합니다!

RESTful API는 이러한 REST 특징을 지키면서 API를 제공하는 것이다. 쉽게 말해 다수의 편의성을 위해서 사전에 합의된 규칙으로 쓰여진 API이다. RESTful API의 작동 원리를 그림을 보며 정리해보자.

① 어떤 자원에 대해 [CRUD:Create, Read, Update, Delete] 연산을 수행하기 위해

② GET/POST/PUT/DELETE 방식(HTTP Method)를 사용하여 URI(Resourse)로 요청을 보내고

③ JASON/XML/HTML 등을 통해 특정한 형태(Representation of Resourse)로 표현하여 응답받는다.

오픈API 도 알아야 하는가?

이렇게 잘 설계한 API를 누구나 쓸 수 있게 오픈하여 제공하는 것을 오픈API라고 한다. 오픈API의 사전적 의미는 플랫폼 기능 또는 콘텐츠를 외부에서 웹 프로토콜(HTTP)로 호출하여 사용할 수 있게 개방한 API 이다. 즉 누구나 이용할 수 있도록 공개되어 있는 프로그래밍 인터페이스인 것이다.

카카오의 오픈API 제공 사이트

카카오는 로그인, 메세지, 지도, 채널 등 자사에서 개발한 서비스의 오픈API를 개발자들이 자유롭게 활용할 수 있도록 Kakao Developers 에서 제공하고 있다. 이렇게 기업은 자사가 공개한 API가 다양한 서비스에서 활용되어서 시장을 확대하는 것을 목적으로 운영하고 기상청과 같은 비영리기관은 공공의 목적으로 날씨 정보와 같은 오픈API를 제공하는 경우도 있다. 오늘의 주제인 카카오 로그인 오픈API를 자세히 살펴보자.

카카오 로그인 API 의 기능과 구조

디벨롭퍼 페이지에서 카카오 로그인은 Kakao SDK for Android, iOS, JavaScript와 REST API 로 제공되며 OAuth 2.0 기반이다. 이 중 REST API 부분을 분석해보고자한다.

카카오 로그인은 카카오 플랫폼에서 제공하는 핵심 기능 중 하나이다. 카카오톡 사용자는 카카오 로그인을 통해 서비스에 쉽고 빠르게 로그인할 수 있고, 이를 통해 기업은 더 많은 고객을 확보할 수 있다. 카카오 로그인기능으로 카카오톡의 닉네임과 프로필 사진, 이메일, 성별, 연령대 등 사용자의 동의 하에 얻는 사용자 정보를 활용하여 개인화된 서비스를 제공할 수 있다.

제공하는 기능

카카오 로그인은 카카오계정과 애플리케이션(이하 앱)을 연결하고 토큰을 발급받아 카카오 API를 사용할 수 있도록 하는 기능이다. 위 표에서 카카오 API가 제공되는 것으로 O표기된 기능은 서비스에서 카카오 API를 사용하여 편리하게 구현할 수 있고, X표기된 기능은 제공하지 않으므로 자체 구현해야한다.

예를 들어 로그인에서 직접 서비스 ID 및 비밀번호를 입력받고 검증하는 과정을 구현하는 대신, 카카오 로그인API로 간편하게 사용자를 인증하고 회원 정보를 수집할 수 있지만 가입 절차에서 사용자를 DB에 등록하는 기능은 자체적으로 개발해야하는 것이다.

카카오 로그인이 진행되는 과정

위의 로그인 진행 순서를 표현한 이미지에는 카카오 서버가 하나로 표현되어 있지만, 카카오 서버의 호스트는 인증 서버 와 API 서버들로 나뉜다. 카카오 로그인은 인증 서버가, 사용자 정보 가져오기 등 다른 기능은 API 서버들이 각각 요청을 받고 작업을 수행한다. 조금 더 풀어서 정리하면 이런 순서이다.

1) 유저의 사전 회원가입 후 로그인 시도

2) 소셜 로그인 인증 API 호출 -> 인증코드 받음

3) 접근 토큰 Access_ token 요청 with 인증 코드 -> 접근 토큰 받음

4) 회원정보 API 호출 with Access token -> 회원 정보 받음

5) 로그인 with 회원 정보

여기서 등장한 token 이라는 새로운 개념이 있다. 서버에서는 권한이 중요하기 때문에 토큰은 본인 확인 수단이라고 볼 수 있다. 예를 들어 로그인 할 때 ID와 PW를 넣고 로그인하면 서버가 그것을 확인한 뒤 ID와 PW가 맞으면 이 사용자가 유효한 사용자라는 토큰을 발행해준다. 사용자는 이 토큰으로 해당사이트의 여러 서비스를 이용할 수 있는 것이다.

카카오 로그인 API의 구조

카카오 로그인 API기능은 인가코드받기 부터 동의철회하기 로 구성 되어 있다. 이 중 REST API 카카오 로그인은 인가코드받기 와 토큰받기 두 단계 를 거치는데 먼저 인가코드를 받고, 그 인가코드로 토큰을 요청한다. 인가코드 요청 단계에서 클라이언트에 카카오계정 정보 또는 카카오톡을 통해 사용자를 인증하는 과정을 거친다. 이후 동의 화면을 출력하고 사용자로부터 제3자 정보제공 등의 동의를 받아 인가 코드를 발급하는 구조이다. 이렇게 일부 과정에서만 REST API를 활용하므로 카카오 로그인 기능은 RESTful API는 아니다.

그럼 REST API인 ‘인가코드받기’ 기능의 상세 코드를 보면서 API의 역할과 입출력 구조를 파악해보자.

인가코드 받기 API

인가코드 받기는 카카오 로그인을 시작하는 단계로써, 카카오 로그인 동의 화면을 호출하고, 사용자 동의를 거쳐 인가코드 발급을 요청한다. 동의 화면은 [내 애플리케이션] > [카카오 로그인] > [동의 항목]의 설정 을 반영한다

사용자는 동의 화면에서 서비스 이용 시 필요한 사용자 정보 및 권한 제공에 동의하고 로그인을 요청하거나 로그인을 취소할 수 있다. 필수 동의 항목에 모두 동의한 뒤 [동의하고 계속하기] 버튼을 누르면, 카카오 인증 서버는 해당 사용자에 대한 인가코드를 발급해 서비스의 redirect_uri 에 전달하게 된다. 카카오는 개발자를 위해 친절하게 요청하고 응답받는 샘플을 제공하여 안내하고 있다.

Request 부분에서는 Request URL과 Parameter에서 Required 될 수 있는 값을 안내한다.

URL을 살펴보자.

GET /oauth/authorize?client_ id =$ {REST_API_KEY} &redirect_ uri =$ {REDIRECT_URI} & response_type =code HTTP/1.1

Host: kauth.kakao.com

GET Method를 사용하여 어떤 요청을 할 것인지를 표기했다.

client_ id , redirect_ uri, response_type 으로 요청받을 값을 지정했다.

Host는 요청할 정보의 서버이다.

이렇게 깔끔하게 정리해서 서버에 요청하면 서버는 이 값만 찾아서 응답해주면 된다.

Response부분에서는 Request에서 요청을 받고 Response 해줄 수 있는 값을 안내한다. 에러가 나는 경우도 있기 때문에 Required 될 수 없는 에러상황도 설계가 되어 있다. 에러 없이 code값으로 응답을 할 경우의 Request와 Response코드 샘플을 살펴보자.

▶Request Sample

https://kauth.kakao.com/oauth/authorize? response_type =code&client_ id =$ {REST_API_KEY} &redirect_ uri =$ {REDIRECT_URI}

요청URL과 액션 : https ://kauth.kakao.com/oauth/authorize?

클라이언트의 ID요청 : response_type=code&client_id=${REST_API_KEY}

인가코드가 리다이랙트 될 URI : redirect_uri=${REDIRECT_URI}

이렇게 URL에서 찾아야 할 값들을 지정하여 요청을 보내면 응답을 받을 수 있게 된다.

▶Response : 사용자가 [동의하고 계속하기] 선택, 로그인 진행

HTTP/1.1 302 Found

Content-Length: 0

Location : $ {REDIRECT_URI} ?code=$ {AUTHORIZE_CODE}

앞서 response type = HTTP/1.1로 지정한 것처럼, 지정한 표기 값을 지켜서 찾은 코드(302) 와 찾은 여부(Found) 를 먼저 안내하고 요청받은 값을 찾아서 {REDIRECT_URI} 와 {AUTHORIZE_CODE} 로 응답해주고 있다. 이 과정을 통해 받은 인가코드는 다음 단계인 “토큰 받기”에 사용할 수 있게 된다.

이렇게 에러가 뜰 경우를 안내해서 사용자의 행동패턴에 따른 상황별 대처법을 알 수 있다. 필자는 전문 개발자가 아니라 이 에러가 무엇을 의미하는지, 어떤 대처가 필요한지 정확히 알 수는 없지만 오픈API이기 때문에 기존 서비스가 개발된 환경과 사용자의 환경, 그리고 카카오가 제공하는 환경의 차이로 생기는 문제가 아닌가 예측해 본다. 오픈API를 제품개발에 사용하면 그 부분을 별도로 개발할 필요 없이 카카오가 사전에 잘 설계해둔 서비스를 그대로 가져와서 편리하게 사용하고 시간을 절약할 수 있으며 고객에게 익숙한 환경을 제공할 수 있다. 그러나 카카오가 정한 규칙을 활용하는 것이기 때문에 기존 서비스와 잘 호환하기 위한 노력이 필요할 수 있다고 판단되었다.

좋은 기획자가 되려면 개발자와 함께 호흡할 수 있어야 기초부터 탄탄히 쌓인 완성도 높은 서비스를 기획해 나갈 수 있어서 이렇게 개념을 이해하는 시간이 소중한 것 같다. 그러나 초보이기에 부딪히는 벽이 있다. 오늘 알아본 개념은 며칠을 들여다보고 공부했지만 100% 이해하고 소화할 수 없어서 아쉬웠다. 개발이 라는 산을 뛰어넘고 싶고, 더 잘 이해하고 싶어서 공부를 지속할 생각이다.

문제를 기막히게 해결하는 유익한 기획자.

코드스테이츠 PM 부트캠프로 획기적인 프로덕트 매니저가 되어 가다.

기막힌 생각과 획기적인 방법론자, PM이야기 #17. 끝.

참고자료

카카오톡 로그인 API 사용하기 – TriplexLab – 티스토리

카카오계정 로그인

function secession() { Kakao.API.request({ url: ‘/v1/user/unlink’, success: function(response) { console.log(response); //callback(); //연결끊기(탈퇴)성공시 서버에서 처리할 함수 window.location.href=’/’ }, fail: function(error) { console.log(‘탈퇴 미완료’) console.log(error); }, }); };

window.Kakao.init(‘본인 JAVASCRIPT API 키’); function kakaoLogout() { if (!Kakao.Auth.getAccessToken()) { console.log(‘Not logged in.’); return; } Kakao.Auth.logout(function(response) { alert(response +’ logout’); window.location.href=’/’ }); };

22 thg 4, 2021 — 애플리케이션 탭 · 앱 정보를 입력 · 각종 api 키 확인 · 플랫폼 등록 · 해당 사이트 주소를 입력 · 리다이렉트 주소 등록 버튼 · 리다이렉트 주소 등록 준비.

  • Source: triplexlab.tistory.com
  • Views: 6471
  • Publish date: 6 hours ago
  • Downloads: 58910
  • Likes: 9533
  • Dislikes: 3
  • Title Website: 카카오톡 로그인 API 사용하기 – TriplexLab – 티스토리
  • Description Website: 22 thg 4, 2021 — 애플리케이션 탭 · 앱 정보를 입력 · 각종 api 키 확인 · 플랫폼 등록 · 해당 사이트 주소를 입력 · 리다이렉트 주소 등록 버튼 · 리다이렉트 주소 등록 준비.

세부 정보를 보려면 여기를 클릭하십시오.

취준생을 위한 스위프트UI 앱만들기 카카오 로그인 연동 kakaoTalk oauth / SwiftUi fundamental Tutorial (2022)

  • Source: Youtube
  • Views: 109922
  • Date: 13 hours ago
  • Download: 39573
  • Likes: 2332
  • Dislikes: 6

카카오톡 로그인 API 사용하기

👨‍💻카카오톡 로그인 API 사용하기

안녕하세요 TriplexLab입니다 🙂

오늘은 JavaScript로 카카오 로그인하는 모습을 보여 드리겠습니다.

🎯카카오톡 로그인 API 실행 결과

카카오톡 로그인 API 실행 결과

먼저 하단에 카카오 개발자 사이트를 방문하셔서 로그인을 해줍니다.

로그인 후 > 내 애플리케이션 탭을 클릭합니다.

애플리케이션 탭

그리고 애플리케이션 추가하기 버튼을 클릭합니다.

그럼 다음과 같은 팝업이 나옵니다. 만들고자 하는 앱 이름을 작성해 줍니다.

앱 정보를 입력

그럼 다음과 같은 페이지로 이동합니다.

각종 api 키 확인

요약 정보 탭에서 앱키라는 영역에 각각의 해당 키들이 발급된 것을 확인할 수 있습니다.

🎯플랫폼 등록

저는 web에 적용할것이기 때문에 web 플랫폼 등록 버튼을 클릭합니다.

플랫폼 등록

그럼 다음과 같은 팝업이 나옵니다.

본인이 사이트 도메인을 작성해줍니다.

(저는 테스트를 할것이기 때문에 로컬 IP번호를 작성했습니다.)

해당 사이트 주소를 입력

저장 버튼을 클릭하면 다음과 같은 화면이 나옵니다.

그리고 Redirect URI를 등록 버튼을 클릭합니다.

리다이렉트 주소 등록 버튼

그럼 다음과 같은 화면이 나옵니다.

여기서 활성화설정을 ON으로 변경합니다.

Redirect URI 등록 버튼을 클릭합니다.

리다이렉트 주소 등록 준비

다음과 같은 팝업이 나옵니다.

여기서는 로그인이 성공적으로 된 후에 Redirect 될만한 URL을 등록합니다.

(저는 테스트를 위해서 이미의 경로를 넣어놨습니다.)

리다이렉트 주소 등록

그리고 저장 버튼을 누르면 다음과 같이 장상적으로 등록된 모습을 확인할 수 있습니다.

리다이렉트 주소 등록 완료

🎯동의 항목

동의 항목 메뉴를 클릭하면 개인정보 보호라는 필드들이 보입니다.

이 중에서 내가 사용자로부터 받고 싶은 필드들을 활성화시켜주면 됩니다.

개인정보 보호 설정

저 같은 경우에는 프로필, 카카오 계정만 받아보겠습니다.

프로필 정보(닉네임/프로필 사진) 카카오계정(이메일)

다음과 같이 2개의 필드만 활성화했습니다.

필요한 필드 활성화 시킴

🎯 카카오톡 로그인 API의 코드

이제 이상태에서 개발을 해보도록 하겠습니다.

카카오톡 개발 문서는 여기를 참고해주세요

다음 코드는 카카오톡 개발 문서를 참고하여 로그인을 구현해놓은 코드입니다.

카카오계정 로그인

🎯카카오톡 로그아웃

window.Kakao.init(‘본인 JAVASCRIPT API 키’); function kakaoLogout() { if (!Kakao.Auth.getAccessToken()) { console.log(‘Not logged in.’); return; } Kakao.Auth.logout(function(response) { alert(response +’ logout’); window.location.href=’/’ }); };

🎯카카오톡 회원 탈퇴(연결 끊기)

function secession() { Kakao.API.request({ url: ‘/v1/user/unlink’, success: function(response) { console.log(response); //callback(); //연결끊기(탈퇴)성공시 서버에서 처리할 함수 window.location.href=’/’ }, fail: function(error) { console.log(‘탈퇴 미완료’) console.log(error); }, }); };

🎯 파일 공유

해당 내용 github로 공유합니다. 👍👍👏👏🎉🎉

카카오 로그인(Kakao Login) 인증 API을 활용해서 간단하게 …

Key Type Description Required success Function(Object) 로그인이 성공할 경우 사용자 토큰을 받을 콜백 함수 X fail Function(Object) 로그인이 실패할 경우 에러를 받을 콜백 함수 X always Function(Object) 로그인 성공 여부에 관계 없이 항상 호출되는 함수 X scope String 추가 동의 받을 항목의 키 X persistAccessToken Boolean 세션이 종료된 뒤에도 Access Token을 사용할 수 있도록 로컬 스토리지에 저장합니다. (default: true) X throughTalk Boolean 간편 로그인 사용 여부 (default: true) X

loginWithKakao = () => { try { return new Promise((resolve, reject) => { if (!Kakao) { reject(‘Kakao 인스턴스가 존재하지 않습니다.’) } Kakao.Auth.login({ success: (auth) => { console.log(‘정상적으로 로그인 되었습니다.’, auth) this.setState({ isLogin: true }) }, fail: (err) => { console.error(err) } }) }) } catch (err) { console.error(err) } }

클릭 이벤트 핸들러에서 함수를 호출하면 카카오 로그인 동의화면 띄울 수 있으며, 동의화면을 통해 사용자로부터 사용자 정보 및 기능 활용 동의를 받을 수 있습니다. 함수 호출 시 팝업으로 카카오 로그인 동의 화면이 표시됩니다. 로그인 요청 결과 사용자 토큰이 발급되며, 이 토큰은 SDK 내부적으로 사용되고 있기 때문에 별도의 처리가 필요하지 않습니다. 로그인 성공 시 서비스의 로그인 및 회원 가입 처리가 필요합니다. 인증 성공 시 서비스의 로그인 처리는 success 콜백 함수를 사용해야 합니다.

23 thg 7, 2020 — 이전에 웹(Web) 서비스에서 카카오맵 API를 활용하는 방법에 대해서 소개 … 사전 설정 카카오 로그인 기능을 구현하기 위해서는 카카오 개발자 지원 …

  • Source: webruden.tistory.com
  • Views: 96693
  • Publish date: 1 minute ago
  • Downloads: 108188
  • Likes: 1769
  • Dislikes: 4
  • Title Website: 카카오 로그인(Kakao Login) 인증 API을 활용해서 간단하게 …
  • Description Website: 23 thg 7, 2020 — 이전에 웹(Web) 서비스에서 카카오맵 API를 활용하는 방법에 대해서 소개 … 사전 설정 카카오 로그인 기능을 구현하기 위해서는 카카오 개발자 지원 …

세부 정보를 보려면 여기를 클릭하십시오.

자바스크립트로 네이버 아이디로 로그인 적용하기

  • Source: Youtube
  • Views: 80253
  • Date: 12 minute ago
  • Download: 84707
  • Likes: 9692
  • Dislikes: 10

카카오 로그인(Kakao Login) 인증 API을 활용해서 간단하게 사용자 로그인 처리하는 방법

카카오 개발자 지원 사이트가 굉장히 깔끔하게 변경되었습니다! 개인적으로 이전 사이트보다 깔끔하고 사용하기 편리하게 구조가 잡힌 느낌이네요. 이전에 웹(Web) 서비스에서 카카오맵 API를 활용하는 방법에 대해서 소개했는데, 이번에는 웹 서비스의 핵심인 로그인 프로세스를 카카오 로그인 인증 API(Kakao Login API)를 활용해서 구현해보려고 합니다.

사전 설정

리뉴얼된 카카오 개발자 지원 사이트

카카오 로그인 기능을 구현하기 위해서는 카카오 개발자 지원 사이트에 로그인을 하셔야 합니다. 상단에 배치된 메뉴에서 내 애플리케이션이나 로그인을 누르시면 로그인을 하실 수 있습니다.

카카오 개발자 지원 사이트 로그인 화면

저는 내 애플리케이션을 통해서 로그인을 했기 때문에 바로 내 애플리케이션 페이지로 이동한 모습입니다.

애플리케이션 추가

카카오 내 애플리케이션 지원 페이지

테스트를 위해서 애플리케이션을 추가하겠습니다. 애플리케이션 추가하기 버튼을 누르시면 아래 애플리케이션 추가를 위해 애플리케이션 정보를 기입하는 창이 뜹니다. 테스트 용도로 사용하니까 대충 입력하고 넘어가겠습니다.

카카오 인증 테스트를 위해서 테스트 애플리케이션을 추가하는 모습

애플리케이션 추가가 완료되었다면, 이전에 눌렀던 애플리케이션 추가하기 버튼 아래에 저희가 생성한 애플리케이션이 바로 아래 위치하고 있는 것을 확인할 수 있습니다. 한번 저희가 생성한 애플리케이션을 살펴볼까요?

애플리케이션이 생성된 모습

생성한 애플리케이션을 누르시면 아래와 같이 각종 정보들을 확인할 수 있습니다. 요약 정보부터 시작해서 일반, 비즈니스, 앱 키, 플랫폼, 팀 관리 등 굉장히 다양한 기능을 제공합니다. 그리고 요약 정보에는 저희가 생성한 애플리케이션을 사용할 수 있는 앱 키가 존재합니다. 해당 키는 외부에 노출되지 않도록 잘 관리해주세요.

내 애플리케이션 정보 살펴보기

저희는 웹 플랫폼에서 카카오 로그인 인증을 구현하기 때문에 플랫폼 설정하기로 들어가서 웹 플랫폼 부분의 설정을 수정하도록 하겠습니다.

웹 플랫폼 추가

플랫폼 설정

플랫폼 설정하기를 들어가면 안드로이드(Android), iOS 그리고 웹(Web)을 설정할 수 있습니다. 저희는 웹 플랫폼을 수정하도록 하겠습니다. 웹 플랫폼 등록을 눌러주세요.

안드로이드, iOS, Web 플랫폼을 등록하기 위한 페이지

웹 플랫폼 등록 버튼을 누르면 웹 플랫폼 등록을 위한 창이 뜹니다. 저희는 허용하기 위한 사이트 도메인을 추가해야 합니다. 저의 테스트 환경의 로컬 포트는 3000이므로 http://localhost:3000을 추가합니다. 만약 개발하는 환경이 다른 포트면 해당하는 포트번호의 로컬 호스트를 등록하면 됩니다. 그리고 실제 상용화 도메인도 여기에 추가하셔야지 정상적으로 서비스에 적용할 수 있습니다.

최대 10개까지 등록이 가능하다고 하니 이점 유념해서 사이트 도메인을 구성해주시면 될 것 같습니다. 그리고 여러 개를 등록하고 싶을 때는 줄 바꿈으로 추가하시면 됩니다.

웹 플랫폼 등록에서 사이트 도메인을 추가

정상적으로 사이트 도메인을 추가한 예시

사이트 도메인 등록을 안하시면 아래와 같은 에러가 발생하게 됩니다.

사이트 도메인을 등록하지 않을 시 나타나는 에러

카카오 로그인 활성화

그러면 이제 카카오 로그인을 구현하기 위해 제품 설정에 들어가서 카카오 로그인 활성화 설정을 하겠습니다. 좌측 탭메뉴에서 제품설정 > 카카오 로그인을 누르면 아래와 같은 페이지를 확인할 수 있습니다.

카카오 로그인 활성화 하기 위해 카카오 로그인 제품 페이지로 이동 카카오 로그인 활성화 동의창 미리보기를 통해 어떤 화면으로 수신동의가 노출되는지 확인할 수 있습니다

JavaScript SDK 추가

그럼 이제 코드 쪽을 살펴보겠습니다. 카카오 로그인을 사용하기 위해서는 카카오 JavaScript SDK를 상용해야 합니다.

저는 테스트로 create-react-app으로 리액트 환경을 구성해서 진행하기 때문에 public/index.html 파일에 스크립트를 넣겠습니다.

kakao javascript sdk를 추가하는 예시 javascript sdk가 정상적으로 추가되었고, 스크립트가 정상적으로 동작하는 예시

Kakao Javascript SDK를 추가하고, Kakao 인스턴스가 정상적으로 호출되는 것이 확인되었으면 이제 init을 해줄 차례입니다. 이전에 내 애플리케이션 페이지에서 요약 정보나 앱 키 쪽에 애플리케이션 Javascript 키가 있는 것을 확인했습니다. Javascript 키를 활용해서 init을 하겠습니다.

Javascript 키

저는 componentDidMount 라이프사이클에서 Kakao.init을 해주겠습니다. Kakao.init 파라미터로 자바스크립트 키를 넣어줍니다.

componentDidMount() { Kakao.init(‘여기에 자바스크립트 키를 입력하세요.’); }

Kakao.init을 에러 없이 잘 작동시켰다면 아래와 같이 관련 API들을 사용할 수 있는 환경이 구성되었음을 확인할 수 있습니다.

Kakao.init이 정상적으로 호출된 예시

카카오 인증 구현

로그인

카카오 로그인은 기본적으로 Kakao.Auth.login 함수를 사용해서 구현합니다.

카카오 로그인 동의 화면을 팝업으로 띄우거나 클라이언트에서 모든 인증처리를 하고 싶은 경우 Kakao.Auth.login 함수를 사용할 수 있습니다.

클릭 이벤트 핸들러에서 함수를 호출하면 카카오 로그인 동의화면 띄울 수 있으며, 동의화면을 통해 사용자로부터 사용자 정보 및 기능 활용 동의를 받을 수 있습니다. 함수 호출 시 팝업으로 카카오 로그인 동의 화면이 표시됩니다. 로그인 요청 결과 사용자 토큰이 발급되며, 이 토큰은 SDK 내부적으로 사용되고 있기 때문에 별도의 처리가 필요하지 않습니다. 로그인 성공 시 서비스의 로그인 및 회원 가입 처리가 필요합니다. 인증 성공 시 서비스의 로그인 처리는 success 콜백 함수를 사용해야 합니다.

Key Type Description Required success Function(Object) 로그인이 성공할 경우 사용자 토큰을 받을 콜백 함수 X fail Function(Object) 로그인이 실패할 경우 에러를 받을 콜백 함수 X always Function(Object) 로그인 성공 여부에 관계 없이 항상 호출되는 함수 X scope String 추가 동의 받을 항목의 키 X persistAccessToken Boolean 세션이 종료된 뒤에도 Access Token을 사용할 수 있도록 로컬 스토리지에 저장합니다. (default: true) X throughTalk Boolean 간편 로그인 사용 여부 (default: true) X

아래는 Kakao.Auth.login의 기본 구조입니다.

Kakao.Auth.login({ // persistAccessToken: true, success: (auth) => { }, fail: (err) => { console.error(err) } })

카카오 로그인 버튼에 클릭 이벤트 핸들러를 추가합니다.

loginWithKakao = () => { try { return new Promise((resolve, reject) => { if (!Kakao) { reject(‘Kakao 인스턴스가 존재하지 않습니다.’) } Kakao.Auth.login({ success: (auth) => { console.log(‘정상적으로 로그인 되었습니다.’, auth) this.setState({ isLogin: true }) }, fail: (err) => { console.error(err) } }) }) } catch (err) { console.error(err) } }

클릭하면 정상적으로 카카오 로그인 동의화면이 노출되는 모습

동의항목 변경

애플리케이션에서 받고 싶은 개인정보 보호항목을 추가합니다. 다양한 값들이 있으니(프로필 정보(닉네임/프로필 사진), 카카오계정(이메일), 성별, 연령대, 카카오 서비스 내 친구목록, 생일) 서비스의 용도에 맞게 개인정보를 받으면 됩니다.

개인정보 동의항목을 수정하는 예시

저는 프로필 정보(닉네임/프로필 사진)만 받게끔 동의항목을 설정하겠습니다. 동의항목 설정을 하실 때 동의 단계(필수 동의, 선택 동의, 이용 중 동의)를 선택할 수 있고 해당 값이 없을 경우 카카오 계정 정보 입력을 요청할 수도 있습니다. 동의 목적은 필수적으로 입력하셔야 됩니다.

동의항목 설정

동의 항목을 수정하고 다시 카카오 로그인을 눌러보면 필수 제공 항목란이 추가되었음을 확인할 수 있습니다.

필수 제공 항목이 추가된 모습

그럼 이제 전체 동의를 하고 로그인을 하겠습니다. 로그인을 완료하면 로그인에 필요한 액세스 토큰이나 만료기간 등 카카오 인증 API에서 제공하는 값을 요청 받을 수 있습니다.

성공적으로 로그인한 예시

로그아웃

로그인을 시켜봤으니까 이제 로그아웃 로직도 추가하겠습니다. 기본적으로 카카오 인증 API는 persistAccessToken 값을 true로 지정할 시 토큰이 만료될 때 까지 세션을 유지하고 있습니다.

Kakao.Auth.getAccessToken()를 활용해서 액세스 토큰이 존재하는지를 체크할 수 있고 액세스 토큰이 존재한다면, 로그아웃을 시키면 됩니다. 로그아웃은 Kakao.Auth.logout 함수를 활용해서 구현합니다. 아래는 로그아웃 코드 예시입니다.

logoutWithKakao = () => { if (Kakao.Auth.getAccessToken()) { console.log(‘카카오 인증 액세스 토큰이 존재합니다.’, Kakao.Auth.getAccessToken()) Kakao.Auth.logout(() => { console.log(‘로그아웃 되었습니다’, Kakao.Auth.getAccessToken()); this.setState({ isLogin: false }) }); } }

로그인, 로그아웃, 로그인 세션 모두 정상적으로 작동하는 모습

인증 프로세스 전체 예제 코드

아래는 카카오 인증 프로세스(로그인/로그아웃/세션 유지)에 대한 예제 코드입니다. 참고용으로만 확인하시면 될 것 같습니다.

REST-API 활용한 카카오 소셜 로그인 구현(feat. React) – Joo.soft

// redux > modules > user.js const kakaoLogin = (code) => { return function (dispatch, getState, { history }) { axios({ method: “GET”, url: `http://3.35.208.142/oauth/callback/kakao?code=${code}`, }) .then((res) => { console.log(res); // 토큰이 넘어올 것임 const ACCESS_TOKEN = res.data.accessToken; localStorage.setItem(“token”, ACCESS_TOKEN); //예시로 로컬에 저장함 history.replace(“/main”) // 토큰 받았았고 로그인됐으니 화면 전환시켜줌(메인으로) }.catch((err) => { console.log(“소셜로그인 에러”, err); window.alert(“로그인에 실패하였습니다.”); history.replace(“/login”); // 로그인 실패하면 로그인화면으로 돌려보냄 } } };

// 리다이렉트될 화면 // OAuth2RedirectHandeler.js import React from “react”; import { useDispatch } from “react-redux”; import { actionCreators as userActions } from “../redux/modules/user”; import Spinner from “./Spinner”; const OAuth2RedirectHandler = (props) => { const dispatch = useDispatch(); // 인가코드 let code = new URL(window.location.href).searchParams.get(“code”); React.useEffect(async () => { await dispatch(userActions.kakaoLogin(code)); }, []); return ; }; export default OAuth2RedirectHandler;

// App.js function App() { return ( ); }

10 thg 5, 2021 — 카카오 개발자 홈페이지를 정말 많이 읽었음에도 프론트엔드가 소셜 로그인을 할 때 어떤 역할을 해주어야 하는지 명확히 감이 오질 않았고 API 활용 …

  • Source: data-jj.tistory.com
  • Views: 61852
  • Publish date: 14 hours ago
  • Downloads: 52315
  • Likes: 6634
  • Dislikes: 4
  • Title Website: REST-API 활용한 카카오 소셜 로그인 구현(feat. React) – Joo.soft
  • Description Website: 10 thg 5, 2021 — 카카오 개발자 홈페이지를 정말 많이 읽었음에도 프론트엔드가 소셜 로그인을 할 때 어떤 역할을 해주어야 하는지 명확히 감이 오질 않았고 API 활용 …

세부 정보를 보려면 여기를 클릭하십시오.

스프링부트 강좌 62강(블로그 프로젝트) – 카카오 로그인 환경설정

  • Source: Youtube
  • Views: 6447
  • Date: 11 hours ago
  • Download: 90570
  • Likes: 1055
  • Dislikes: 1

REST-API 활용한 카카오 소셜 로그인 구현(feat. React)

프로젝트를 진행하면서 소셜 로그인 구현을 맡게 되었다.

다들 프론트엔드는 소셜 로그인에서 할게 많이 없다 쉽다~, 그중에서 카카오가 가장 쉽다~

이렇게 얘기해서 방심했다.

그렇게 6일간의 소셜 삽질이 시작되었다.

구글링을 해보니 똑같은 카카오 로그인 구현인데도 정말 신기하게 포스팅한 사람들마다 다들 다른 방법을 사용하여 매우 혼란스러웠고 이해하는데 한참 걸렸다.

마침내 성공을 했을 때 극한의 희열감과 이건 반드시 포스팅으로 남겨 놓으리라 다짐하여 지금 글을 작성 중이다.

카카오 개발자 홈페이지를 정말 많이 읽었음에도 프론트엔드가 소셜 로그인을 할 때 어떤 역할을 해주어야 하는지 명확히 감이 오질 않았고 API 활용 방법만 적혀있을 뿐이었다.

프론트와 백엔드의 역할 구분에 대한 개념이 확실히 잡히질 않았기 때문에 처음으로 구현 성공한 사람들의 백엔드 코드도 보고 이것저것 다 보면서 굉장히 깊이 있는 삽질을 하게 되었다.

아래는 REST-API를 활용한 카카오 로그인 문서이다.

developers.kakao.com/docs/latest/ko/kakaologin/rest-api

본문 전 간단 요약

REST-API 를 활용한 카카오 로그인 방법을 사용하였다.

React – Spring 이 함께 작업하였다.

프론트엔드 : 카카오로부터 인가코드 를 받고 받은 인가코드를 백엔드에 넘겨주는 역할을 하였다. (+ 마지막 리다이렉팅까지)

인가코드를 넘기면 백엔드로부터 우리 사이트 전용 토큰을 발급받았다.

백엔드 : 프론트로부터 인가 코드를 넘겨받고 카카오로부터 토큰을 발급받는다. 그리고 해당 토큰에 담긴 유저 정보를 활용해 프로젝트 전용 토큰으로 새롭게 발급 후 프론트에게 돌려준다.

카카오 토큰을 그대로 클라이언트에게 직접 넘겨주고 사용시키면 고소당할 수도 있다고 백엔드 팀원분이 말씀해주심.

생각해보니 해킹당하면 사용자의 카카오 정보 안에 있는 것들이 몽땅 털리는 셈인데 확실히 고소당할 수도 있을듯하다.

대략적인 소셜 로그인의 과정을 그림으로 그려보았다.

백엔드에서는 OAuth, secret Key 설정 등 더 많은 작업이 이루어지지만 정확히 어떤 건지 설명하기엔 전문성이 부족하여

프론트 위주로 작성하였다.

1. 인가 코드 받기

가장 먼저 인가 코드를 받아와야 한다.

developers.kakao.com/docs/latest/ko/kakaologin/rest-api

위에 올린 링크를 타고 들어가면

kakao developers

이렇게 단계별로 설명이 나온다.

조금만 더 내려가면

이런 화면을 볼 수 있는데 처음엔 이게 대체 뭘 뜻하는 걸까… 싶었다.

GET은 메서드인 거 같고 Host는 뭐고 Parameter는 뭐지..?

결론은 URL 구조에 대해 구글링을 좀 하다 보면 대략적으로 이해하게 된다.

출처 : https://www.beusable.net/blog/?p=4507

URL 구조에 맞게 위 내용을 조합하면

“https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code” // 파라미터 시작은 ? 로

이렇게 되고 이 주소로 접근을 하면 인가 코드를 받아올 수 있게 된다.

근데 저걸 그대로 쓰면 절대 안 될 거다.

위에 명시됐듯이 cliend_id와 redirect_uri를 받아와서 {REST_API_KEY}와 {REDIRECT_URI}에 채워주어야 한다.

두 가지를 얻으려면 우선 애플리케이션을 생성한다.

cliend_id

cliend_id는 kakao developers에서 내 애플리케이션을 추가했을 때 생기는 REST_API 키를 넣어주면 되고,

Redirect URI

Redirect URI는 카카오 로그인 메뉴에 들어가서 추가를 해준다. 이때 경로 설정은 백엔드와 협의해서 맞춘다.

우린 백엔드분이 하자는 경로로 따라갔다. (oauth/callback/kakao)

대신!! Redirect URI는 반드시 프론트에서 접근할 수 있는 Host로 지정해주어야 한다. (localhost:3000)

왜냐하면 여기에서 인가 코드 받고 넘기고 등등 모든 작업이 이루어져야 하는데 프론트엔드가 접근할 수 없는 Host로 지정을 해버리면 말 그대로 접근을 못하니 아무것도 할 수 없다.

(localhost:8080 등… 대신 이건 백엔드에서 자체 테스트할 때 사용할 수 있음)

(우리는 여기서 정말 많이 헤맸다.)

http://localhost:3000/oauth/callback/kakao

플랫폼 추가

Web에서 사용할 것이기 때문에 Web 플랫폼에 사이트 도메인을 추가한다.

배포하기 전이기 때문에 localhost:3000으로 설정했다.

배포하면 배포한 주소도 추가해야 함

사실 위 과정은 백엔드든 프론트든 아무나 해도 상관없다.

하지만 반드시 한 사람의 REST_API 혹은 REDIRECT_URI를 따라가야 한다.

(백/프론트 각자 테스트해보겠다고 서로 만들고 나중 가서 URI 꼬이면 작동이 안 된다. 헷갈리기도 하고)

이렇게 모아 온 것들을 한 번에 편하게 관리하기 위해 컴포넌트를 새로 생성하였다.

> OAuth.js

// OAuth.js 라는 컴포넌트를 따로 생성하여 관리하였음 const CLIENT_ID = “11111111111111111111111111111111”; const REDIRECT_URI = “http://localhost:3000/oauth/callback/kakao”; export const KAKAO_AUTH_URL = `https://kauth.kakao.com/oauth/authorize?client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&response_type=code`;

[카카오 계정 로그인] 버튼을 눌렀을 때 위에서 만든 URL 주소로 연결을 시켜주면 된다.

// Login.js import { KAKAO_AUTH_URL } from “../shared/OAuth”; 카카오계정 로그인

그러면 버튼을 눌렀을때 카카오톡 로그인 화면으로 이동이 되고, 이메일-비밀번호를 입력하면 아래와 같이 동의하기 화면이 나온다.

여기서! 동의하고 계속하기를 누르면 이동되는 화면이 Redirect_URI 화면이다.

이 화면에서 보이지 않는 모든 것이 이루어진다.

위에 보이는 화면이 카카오가 리다이렉팅 시킨 화면이다.

(앞서 설정한 URI와 캡처본의 URI가 다른데 캡쳐 시기상 달라진 것일 뿐이니 신경 쓰지 말고 진행하면 된다.)

주소창을 보면 Redirect_URI 뒤에 파라미터로 ?code=@@@@@@@@@@@@@

인가 코드가 넘어온 것을 확인할 수 있다.

우리에게 필요한 것이 이 인가 코드이다.

파라미터로 넘어온 인가 코드를 가져와야 하는데 이때 사용하면 좋은 명령어가 있다.

window.location.href

현재 화면의 주소창을 확인할 수 있다. 아무 페이지나 들어가서 개발자 도구 콘솔에 테스트해보길

window.loacation.href

그리고 이 내용을 그대로 URL에 집어넣어서 보게 되면 해당 주소에 대한 자세한 정보를 볼 수 있다.

new URL( )

잘 보면 search라는 파라미터 안에 인가 코드가 예쁘게 잘 담겨있는 것을 알 수 있다.

구성상 ?code={코드 내용} 이렇게 되는데 그럼 “code”라는 key에 있는 value를 꺼내면 된다.

let 변수명 = new URL(window.location.href).searchParams.get(‘code’)

URL 안에 search 파라미터에 들어있는 ‘code’라는 값을 get 하겠다.

이렇게 하면 ‘변수명’이라는 변수 안에 인가 코드 정보가 담기게 된다.

근데 해당 작업을 콘솔에서 할 순 없고 이걸 어떤 컴포넌트에서 작업을 해야 할지가 처음엔 아리송했다.

해답은 우리는 현재 Redirect_URI의 경로를 알고 있으니

(위에선 localhost:3000/oauth/callback/kakao 라고 임의로 지정하였음)

해당 경로에 도달했을 때 보여줄 컴포넌트를 생성하고 App.js에서 Route만 걸어주면 된다.

컴포넌트를 OAuth2RedirectHandler.js 라고 이름을 지었다.

(알아만 볼 수 있게 kakao.js 혹은 social.js 라고 적어도 됨 뭐든 자유)

이 컴포넌트가 리다이렉트 되는 화면으로서 사용될 것이기 때문에 여기에 인가 코드를 받아오는 코드를 적어주었다.

그리고 네트워크가 느린 사용자들은 리다이렉팅 되는 화면을 무방비로 보게 될 것인데 이 화면이 그냥 하얀 화면이면 무슨 상황인지 사용자는 알 턱이 없고 당황할 수도 있기 때문에 spinner를 만들어 넣었다.

인가 코드를 받아오면 axios를 활용해 코드를 백엔드에게 넘겨줄 것이다.

// 리다이렉트될 화면 // OAuth2RedirectHandeler.js import React from “react”; import { useDispatch } from “react-redux”; import { actionCreators as userActions } from “../redux/modules/user”; import Spinner from “./Spinner”; const OAuth2RedirectHandler = (props) => { const dispatch = useDispatch(); // 인가코드 let code = new URL(window.location.href).searchParams.get(“code”); React.useEffect(async () => { await dispatch(userActions.kakaoLogin(code)); }, []); return ; }; export default OAuth2RedirectHandler;

App.js 에서 해당 컴포넌트 경로 설정(Redirect_URI 경로로)

// App.js function App() { return ( ); }

2. 인가 코드 백엔드에 넘기고 토큰 받기

// redux > modules > user.js const kakaoLogin = (code) => { return function (dispatch, getState, { history }) { axios({ method: “GET”, url: `http://3.35.208.142/oauth/callback/kakao?code=${code}`, }) .then((res) => { console.log(res); // 토큰이 넘어올 것임 const ACCESS_TOKEN = res.data.accessToken; localStorage.setItem(“token”, ACCESS_TOKEN); //예시로 로컬에 저장함 history.replace(“/main”) // 토큰 받았았고 로그인됐으니 화면 전환시켜줌(메인으로) }.catch((err) => { console.log(“소셜로그인 에러”, err); window.alert(“로그인에 실패하였습니다.”); history.replace(“/login”); // 로그인 실패하면 로그인화면으로 돌려보냄 } } };

소셜 로그인을 거의 다 성공했는데 막혀서 정말 많은 시간을 쏟았던 부분이다.

(401, 403, 500 등 정말 많은 종류의 에러를 만남)

처음엔 인가 코드를 data에 담아서 POST 메서드로 백엔드에 넘기려고 했었다.

그렇게 하니 신기하게 코드가 넘어가긴 하는데 500 error가 발생하고 백엔드 측으로부터 토큰을 넘겨받지 못하였다.

그래서 방법을 바꾸고 검색을 계속하다가 Redirect_URI는 프론트와 백엔드 모두 일치해야 한다는 누군가의 답변 때문에

설마 통신을 할 때 적는 url 에도 Redirect_URI를 적어야 하나 싶어서 localhost:3000/oauth/callback/kakao 를 넣고 통신을 시도했다. 정말 바보 같은 짓이었다. 내 핸드폰으로 내 전화번호에 전화 거는 셈;;

통신이 될 리가 없었다.

(그만큼 애간장이 탔다.)

그러다 마지막으로 인가 코드는 쿼리 스트링으로 넘겨야 한다 인식한다는 어느 카카오 관계자의 답변을 보게 되어…

(출처는 기억나지 않는다.)

data 형식 다 빼고 url 뒤에 파라미터로 담아서 넘기면서 메서드는 GET을 썼다.

`http://{서버주소}?code=${code}`

로그인 성공…

그렇게 로그인에 성공했다.

토큰을 받아오고 저장을 하였으니(예시로 로컬) 사용자를

계속 Spinner가 돌고 있는 화면으로부터(Oauth2RedirectHandler.js)

다른 곳으로 이동시켜야 했다.

그래서. then() 안에 history.replace(“/main”) 으로 메인화면으로 보내줌으로써 소셜 로그인이 마무리되었다.

하고 보니 프론트엔드는 과정이 생각보다 단순했다.

결론은

알고 봤을 때는 쉽긴 한데… 아무것도 모르는 상태에서 내가 뭘 해야 할지도 모른 채 처음부터 하려니 정말 쉽지 않았다.

더 많은 것들을 도전해보면서 계속해서 경험치를 많이 쌓아보는 것이 답인 것 같다.

아래는 Redirect_URI가 왜 같아야 하는지 알기 위해 백엔드 팀원분이 참고한 블로그들 중 하나이다.

gogomalibu.tistory.com/142

카카오 로그인 API로 로그인 인증하기 – velog

26 thg 5, 2022 — 1. 카카오 로그인 API 구현. 카카오 로그인 API를 사용하기 위해서는 Kakao developers에서 제공하는 개발 문서를 잘 참고하여야 한다. REST API에서 호출 …

  • Source: velog.io
  • Views: 71963
  • Publish date: 9 hours ago
  • Downloads: 57647
  • Likes: 6380
  • Dislikes: 1
  • Title Website: 카카오 로그인 API로 로그인 인증하기 – velog
  • Description Website: 26 thg 5, 2022 — 1. 카카오 로그인 API 구현. 카카오 로그인 API를 사용하기 위해서는 Kakao developers에서 제공하는 개발 문서를 잘 참고하여야 한다. REST API에서 호출 …

세부 정보를 보려면 여기를 클릭하십시오.

Flutter 카카오 로그인 완전 쉬움

  • Source: Youtube
  • Views: 39942
  • Date: 54 minute ago
  • Download: 31383
  • Likes: 5846
  • Dislikes: 2

카카오 로그인 API로 로그인 인증하기

이전 포스팅에서 소개한 대표적인 로그인 방법 3가지 중 하나인 OAuth 2.0 방식으로 로그인을 구현해보겠다.

OAuth 2.0은 소셜 로그인 방식에 주로 사용되는데 무료로 해당 API를 제공해주는 카카오 로그인 API를 선택하였다.

카카오 로그인 구현

1. 카카오 로그인 API 구현

2. 카카오 토큰 갱신 API 구현

1. 카카오 로그인 API 구현

카카오 로그인 API를 사용하기 위해서는 Kakao developers에서 제공하는 개발 문서를 잘 참고하여야 한다. REST API에서 호출할 것이기 때문에 카카오 로그인 REST API 개발 문서를 살펴보면 된다.

로그인은 다음과 같은 과정으로 진행된다.

1-1. 일단, 카카오 로그인 API 시작을 위해 애플리케이션을 추가한다.

1-2. 플랫폼은 Web으로 설정하였다.

1-3. 앱 키 확인하기!

앱 키에는 네이티브 앱, REST API, 자바스크립트, Admin 키가 있는데 REST API에서 호출할 것이기 때문에 REST API 앱 키가 Client ID로 사용될 예정이다.

1-4. 동의 항목 설정

동의 항목 설정에서는 카카오 서버에 저장되어 있는 사용자의 개인 정보 중 어떤 것을 요청할지 설정하는 단계이다.

일단, 닉네임과 이메일을 받아오도록 하였다. 전화번호는 사업자 등록 번호가 있어야 권한이 주어지는 듯 하다..

1-5. 웹 도메인 및 Redirect URI 설정

웹 도메인과 Redirect URI는 테스트를 진행할 로컬 주소와 서버 주소 두 가지를 추가해 주었다.

1-6. 로그인 Controller 구현

카카오 로그인 요청 시 인가 코드 받기, 토큰 받기, 사용자 로그인 처리의 과정을 수행할 Controller 코드를 작성한다.

@ResponseBody @GetMapping ( “/kakao” ) public BaseResponse < PostLoginRes > kakaoLogin ( @RequestParam ( required = false ) String code ) { try { String accessToken = loginService . getKakaoAccessToken ( code ) ; System . out . println ( accessToken ) ; HashMap < String , Object > userInfo = loginService . getUserInfo ( accessToken ) ; System . out . println ( “login Controller : ” + userInfo ) ; PostLoginRes postLoginRes = null ; if ( loginProvider . checkEmail ( String . valueOf ( userInfo . get ( “email” ) ) ) == 0 ) { return new BaseResponse < > ( postLoginRes ) ; } else { postLoginRes = loginProvider . getUserInfo ( String . valueOf ( userInfo . get ( “email” ) ) ) ; return new BaseResponse < > ( postLoginRes ) ; } } catch ( BaseException exception ) { return new BaseResponse < > ( ( exception . getStatus ( ) ) ) ; } }

1-7. 인가 코드 받기

인가 코드는 카카오에서 지정한 형식의 URI을 통해 받아올 수 있다.

client_id : 내 앱 키에서 REST API 키

redirect_uri : 리다이렉트 URI에 추가한 주소

response_type은 code로 고정

예시)

https://kauth.kakao.com/oauth/authorize?client_id=REST_API_KEY입력&redirect_uri=http://localhost:8080/app/login/kakao&response_type=code

서버를 실행하고 해당 URI를 크롬 URL 창에 입력하면 카카오 인증 서버로부터 쿼리 스트링으로 인가 받은 코드를 확인할 수 있다.

1-8. 토큰 발급 (Service 구현)

인가 코드를 사용하여 카카오 인증 서버로부터 Access토큰과 Refresh 토큰을 발급받는다.

public String getKakaoAccessToken ( String code ) { String accessToken = “” ; String refreshToken = “” ; String requestURL = “https://kauth.kakao.com/oauth/token” ; try { URL url = new URL ( requestURL ) ; HttpURLConnection conn = ( HttpURLConnection ) url . openConnection ( ) ; conn . setRequestMethod ( “POST” ) ; conn . setDoOutput ( true ) ; BufferedWriter bufferedWriter = new BufferedWriter ( new OutputStreamWriter ( conn . getOutputStream ( ) ) ) ; String sb = “grant_type=authorization_code” + “&client_id=REST_API_KEY 입력” + “&redirect_uri=http://localhost:8080/app/login/kakao” + “&code=” + code ; bufferedWriter . write ( sb ) ; bufferedWriter . flush ( ) ; int responseCode = conn . getResponseCode ( ) ; System . out . println ( “responseCode : ” + responseCode ) ; BufferedReader bufferedReader = new BufferedReader ( new InputStreamReader ( conn . getInputStream ( ) ) ) ; String line = “” ; StringBuilder result = new StringBuilder ( ) ; while ( ( line = bufferedReader . readLine ( ) ) != null ) { result . append ( line ) ; } System . out . println ( “response body : ” + result ) ; JsonElement element = JsonParser . parseString ( result . toString ( ) ) ; accessToken = element . getAsJsonObject ( ) . get ( “access_token” ) . getAsString ( ) ; refreshToken = element . getAsJsonObject ( ) . get ( “refresh_token” ) . getAsString ( ) ; System . out . println ( “accessToken : ” + accessToken ) ; System . out . println ( “refreshToken : ” + refreshToken ) ; bufferedReader . close ( ) ; bufferedWriter . close ( ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } return accessToken ; }

1-7 단계에서 인가 받은 코드를 사용하여 토큰 발급이 정상적으로 수행되면 다음과 같이 반환 정보가 출력될 것이다.

1-9. 사용자 로그인 처리 (Service 구현)

토큰이 발급 되었으면 해당 토큰으로 사용자 정보(이메일)를 불러와 기존 회원인지 판단한다.

만일, 기존 회원이면 로그인 처리를 하여 사용자 식별자와 JWT를 반환한다.

기존 회원이 아니면 사용자 정보로 회원 가입을 진행해야 하는데 권한 문제로 전화번호를 불러올 수 없는 상황이니 생략하였다.

public HashMap < String , Object > getUserInfo ( String accessToken ) { HashMap < String , Object > userInfo = new HashMap < > ( ) ; String postURL = “https://kapi.kakao.com/v2/user/me” ; try { URL url = new URL ( postURL ) ; HttpURLConnection conn = ( HttpURLConnection ) url . openConnection ( ) ; conn . setRequestMethod ( “POST” ) ; conn . setRequestProperty ( “Authorization” , “Bearer ” + accessToken ) ; int responseCode = conn . getResponseCode ( ) ; System . out . println ( “responseCode : ” + responseCode ) ; BufferedReader br = new BufferedReader ( new InputStreamReader ( conn . getInputStream ( ) ) ) ; String line = “” ; StringBuilder result = new StringBuilder ( ) ; while ( ( line = br . readLine ( ) ) != null ) { result . append ( line ) ; } System . out . println ( “response body : ” + result ) ; JsonElement element = JsonParser . parseString ( result . toString ( ) ) ; JsonObject properties = element . getAsJsonObject ( ) . get ( “properties” ) . getAsJsonObject ( ) ; JsonObject kakaoAccount = element . getAsJsonObject ( ) . get ( “kakao_account” ) . getAsJsonObject ( ) ; String nickname = properties . getAsJsonObject ( ) . get ( “nickname” ) . getAsString ( ) ; String email = kakaoAccount . getAsJsonObject ( ) . get ( “email” ) . getAsString ( ) ; userInfo . put ( “nickname” , nickname ) ; userInfo . put ( “email” , email ) ; } catch ( IOException exception ) { exception . printStackTrace ( ) ; } return userInfo ; }

발급 받은 토큰으로 사용자 정보를 조회해 보았다. nickname과 이메일이 잘 조회된 것을 확인할 수 있다.

2. 카카오 토큰 갱신 API 구현

Access 토큰 갱신은 카카오 개발 문서의 토큰 갱신하기 부분을 참고하였다.

구현 방식은 로그인 방식과 거의 비슷하여 요청 URL과 파라미터, 반환 데이터들을 문서에서 참고하였고, 해당 정보를 기반으로 갱신 Controller와 Service를 구현하였다.

Controller 작성

@ResponseBody @GetMapping ( “/kakao/{userId}” ) public BaseResponse < String > updateKakaoToken ( @PathVariable int userId ) { String result = “” ; try { int userIdxByJwt = jwtService . getUserIdx ( ) ; if ( userId != userIdxByJwt ) { return new BaseResponse < > ( INVALID_USER_JWT ) ; } loginService . updateKakaoToken ( userId ) ; return new BaseResponse < > ( result ) ; } catch ( BaseException exception ) { return new BaseResponse < > ( ( exception . getStatus ( ) ) ) ; } }

Service 작성

public void updateKakaoToken ( int userId ) throws BaseException { KakaoToken kakaoToken = loginProvider . getKakaoToken ( userId ) ; String postURL = “https://kauth.kakao.com/oauth/token” ; KakaoToken newToken = null ; try { URL url = new URL ( postURL ) ; HttpURLConnection conn = ( HttpURLConnection ) url . openConnection ( ) ; conn . setRequestMethod ( “POST” ) ; conn . setDoOutput ( true ) ; BufferedWriter bufferedWriter = new BufferedWriter ( new OutputStreamWriter ( conn . getOutputStream ( ) ) ) ; String sb = “grant_type=refresh_token” + “&client_id=REST_API_KEY 입력” + “&refresh_token=” + kakaoToken . getRefresh_token ( ) + “&client_secret=시크릿 키 입력” ; bufferedWriter . write ( sb ) ; bufferedWriter . flush ( ) ; BufferedReader bufferedReader = new BufferedReader ( new InputStreamReader ( conn . getInputStream ( ) ) ) ; String line = “” ; StringBuilder result = new StringBuilder ( ) ; while ( ( line = bufferedReader . readLine ( ) ) != null ) { result . append ( line ) ; } System . out . println ( “response body : ” + result ) ; JsonElement element = JsonParser . parseString ( result . toString ( ) ) ; Set < String > keySet = element . getAsJsonObject ( ) . keySet ( ) ; String accessToken = element . getAsJsonObject ( ) . get ( “access_token” ) . getAsString ( ) ; String refreshToken = “” ; if ( keySet . contains ( “refresh_token” ) ) { refreshToken = element . getAsJsonObject ( ) . get ( “refresh_token” ) . getAsString ( ) ; } if ( refreshToken . equals ( “” ) ) { newToken = new KakaoToken ( accessToken , kakaoToken . getRefresh_token ( ) ) ; } else { newToken = new KakaoToken ( accessToken , refreshToken ) ; } bufferedReader . close ( ) ; bufferedWriter . close ( ) ; } catch ( IOException exception ) { exception . printStackTrace ( ) ; } try { int result = 0 ; if ( newToken != null ) { result = loginDao . updateKakaoToken ( userId , newToken ) ; } if ( result == 0 ) { throw new BaseException ( UPDATE_FAIL_TOKEN ) ; } } catch ( Exception exception ) { throw new BaseException ( DATABASE_ERROR ) ; } }

테스트 화면

카카오로그인 제3자정보제공 동의항목 “수집” 후 제공 기능

– 카카오 로그인 사용자 정보 가져오기 API 응답 내역 Kakao 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info-response

– 카카오 로그인 동의 항목 Kakao 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite#consent-item

– 카카오 로그인 사용자 동의 Kakao 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/common#user-consent

4 thg 5, 2022 — … 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite#consent-item – 카카오 로그인 사용자 정보 가져오기 API …

  • Source: kakao-tam.tistory.com
  • Views: 98690
  • Publish date: 59 minute ago
  • Downloads: 80084
  • Likes: 2616
  • Dislikes: 1
  • Title Website: 카카오로그인 제3자정보제공 동의항목 “수집” 후 제공 기능
  • Description Website: 4 thg 5, 2022 — … 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite#consent-item – 카카오 로그인 사용자 정보 가져오기 API …

세부 정보를 보려면 여기를 클릭하십시오.

[ 𝑷𝒍𝒂𝒚𝒍𝒊𝒔𝒕 ] 코딩할때 듣기 좋은 노래 | 3 hour playlist | Lofi hip hop mix ~ jazzhop ~ relax beats

  • Source: Youtube
  • Views: 102752
  • Date: 26 minute ago
  • Download: 79813
  • Likes: 4504
  • Dislikes: 5

카카오로그인 제3자정보제공 동의항목 “수집” 후 제공 기능

– 카카오 로그인 사용자 동의 Kakao 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/common#user-consent

– 카카오 로그인 동의 항목 Kakao 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite#consent-item

– 카카오 로그인 사용자 정보 가져오기 API 응답 내역 Kakao 공식 가이드 : https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info-response

– 동의항목별 필수동의 설정방법 FAQ : https://devtalk.kakao.com/t/how-to-set-scopes-to-required-consent/115162

카카오 로그인 시, 닉네임/프로필사진/이메일/이름/전화번호/CI 등. 제3자 정보제공 동의를 디벨로퍼스 설정에 따라 진행합니다.

카카오계정 정보에 동의내역에 해당하는 고객 정보가 없는 경우 수집 가능하며, 디벨로퍼스 동의항목 설정에서 변경 가능합니다.

< 동의 항목 > < 동의항목 설정 >

“카카오 계정으로 정보 수집 후 제공” 설정을 설정을 한 경우 카카오 로그인 시, 동의창이 표시되기전 수집 Flow가 진행됩니다.

< 이메일 동의항목 수집 Flow > < CI 동의항목 수집을 위한 본인인증 >

카카오 로그인 시, 제공되는 개인 정보항목은 아무 서비스에나 제공되는 것이 아니라 이용자가 명시적인 동의를 한 경우 제공되고

제공 가능한 개인 정보 항목도 사업자 등록, 카카오 싱크 검수 등 신뢰할 수 있는 앱인지 확인 후. 제공됩니다.

자세한 제공기준은 FAQ를 참고해주세요.

주제에 대한 관련 정보 카카오 로그인 api

Bing에서 카카오 로그인 api 주제에 대한 최신 정보를 볼 수 있습니다.


주제에 대한 기사 보기를 마쳤습니다 카카오 로그인 api. 이 기사가 유용했다면 공유하십시오. 매우 감사합니다. 사람들이 이 주제와 관련하여 자주 검색하는 키워드: 카카오 로그인 api 카카오 로그인 API 예제, 카카오 소셜 로그인 구현, React 카카오 로그인, 카카오 로그인 DB 저장, 카카오 소셜 로그인, 카카오 로그인 구현, 카카오 로그인 api 연결끊기, 카카오 로그인 ID

Leave a Comment