이오이오이오
코딩하는헬린이
이오이오이오
전체 방문자
오늘
어제
  • 분류 전체보기 (39)
    • 기타 (2)
      • 잡다한 (2)
      • 헬스 (0)
    • 개발 (21)
      • Sql (3)
      • Java (2)
      • Spring (8)
      • OAuth (4)
      • node.js (1)
      • AWS (1)
      • Linux (2)
    • 이론 (11)
    • Dev Tool (1)
      • IntelliJ IDEA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • java
  • isolation level
  • bip
  • db 성질
  • webflux
  • 로이필링
  • 카카오로그인
  • blockchain
  • kakaologin
  • 블록체인
  • 니모닉
  • oauth
  • POW
  • Spring
  • pos
  • Spring Boot
  • Ipfs
  • springboot
  • 블록체인지갑
  • RESTful
  • reactive streams
  • restfulapi
  • nft

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
이오이오이오

코딩하는헬린이

[OAuth] Spring 카카오톡 Login 연동 (3)
개발/OAuth

[OAuth] Spring 카카오톡 Login 연동 (3)

2020. 7. 21. 11:29
반응형

안녕하세요 코드짜는헬창 입니다.

 

이번엔 이전 작업을 통해 받아온 토큰으로 로그인한 유저의 대한

 

여러가지의 계정 정보를 가져오는것에 대하여 포스팅 하도록 하겠습니다.

 

 

 

1) 일단 API 문서를 읽어 봅니다

 

 

 

 

* Header에 발급받은 토큰을 전송하면 위 와 같이 로그인한 대상의 정보를 가져올수 있습니다.

 

2) 코드 구현

 

        public HashMap<String, Object> getUserInfo (String access_Token) {

            //    요청하는 클라이언트마다 가진 정보가 다를 수 있기에 HashMap타입으로 선언
            HashMap<String, Object> userInfo = new HashMap<>();
            String reqURL = "https://kapi.kakao.com/v2/user/me";
            try {
                URL url = new URL(reqURL);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");

                //    요청에 필요한 Header에 포함될 내용
                conn.setRequestProperty("Authorization", "Bearer " + access_Token);

                int responseCode = conn.getResponseCode();
                System.out.println("responseCode : " + responseCode);

                BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

                String line = "";
                String result = "";

                while ((line = br.readLine()) != null) {
                    result += line;
                }
                System.out.println("response body : " + result);

                JsonParser parser = new JsonParser();
                JsonElement element = parser.parse(result);

                JsonObject properties = element.getAsJsonObject().get("properties").getAsJsonObject();
                JsonObject kakao_account = element.getAsJsonObject().get("kakao_account").getAsJsonObject();

                String nickname = properties.getAsJsonObject().get("nickname").getAsString();
                String profile_image = properties.getAsJsonObject().get("profile_image").getAsString();
                String email = kakao_account.getAsJsonObject().get("email").getAsString();

                userInfo.put("nickname", nickname);
                userInfo.put("email", email);
                userInfo.put("profile_image", profile_image);

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return userInfo;
        }

 

 

* 토큰을 받아오는 메소드는 그대로 두시고 별개의 메소드를 추가 시키는겁니다!

   - 해당 메소드를 보시면 인자값으로 토큰을 받아오고 있죠?

 

    @RequestMapping("/login")
    public String home(@RequestParam(value = "code", required = false) String code) throws Exception{
        System.out.println("#########" + code);
        String access_Token = kakaoService.getAccessToken(code);
        HashMap<String, Object> userInfo = kakaoService.getUserInfo(access_Token);
        System.out.println("###access_Token#### : " + access_Token);
        System.out.println("###userInfo#### : " + userInfo.get("email"));
        System.out.println("###nickname#### : " + userInfo.get("nickname"));
        System.out.println("###profile_image#### : " + userInfo.get("profile_image"));
        return "testPage";
    }

 

 

--------------결과---------------

###userInfo#### : ehowl9509@naver.com
###nickname#### : 안인규
###profile_image#### : http://k.kakaocdn.net/dn/hJcXw/btqCO182Al8/EXzTanki8BIGD0kUsKX7F0/img_640x640.jpg

 

 

해당 정보를 잘 가져오고 있습니다. 

 

이만 카카오톡 API 연동을 마치도록 하겠습니다. 

 

연계문서

 

[OAuth] Spring 카카오톡 Login 연동 (2)

 

[OAuth] Spring 카카오톡 Login 연동 (2)

안녕하세요 코드짜는헬창 입니다. 카카오톡 Login 연동에 대한 두번째 포스팅을 하도록 하겠습니다. 저와 같은 환경셋팅을 원하시는 분은 https://eblo.tistory.com/54 를 참고해주세요 ~ 저는 Spring boot에

mylupin.tistory.com

 

[OAuth] Spring 카카오톡 Login 연동 (1)

 

[OAuth] Spring 카카오톡 Login 연동 (1)

안녕하세요. 코드짜는헬창 입니다. 이전엔 자바스크립트 SDK 로 OAuth 연동하여 사용해봤는데 이번엔 Spring 사용한 REST API연동에 대하여 포스팅 하도록 하겠습니다! 1) 카카오 개발자 센터 접속 https

mylupin.tistory.com

 

 

참고

https://antdev.tistory.com/37?category=807235

반응형

'개발 > OAuth' 카테고리의 다른 글

[OAuth] Spring 카카오톡 Login 연동 (2)  (3) 2020.07.20
[OAuth] Spring 카카오톡 Login 연동 (1)  (0) 2020.07.20
[OAuth] 카카오 로그인 API 예제!  (4) 2020.06.22
    '개발/OAuth' 카테고리의 다른 글
    • [OAuth] Spring 카카오톡 Login 연동 (2)
    • [OAuth] Spring 카카오톡 Login 연동 (1)
    • [OAuth] 카카오 로그인 API 예제!
    이오이오이오
    이오이오이오

    티스토리툴바