2025-05-13
http://localhost:8090/kakao/callback
profile_nickname
)profile_image
)account_email
)ํ๋ผ๋ฏธํฐ | ์ค๋ช | ํ์ ์ฌ๋ถ |
---|---|---|
client_id | ์นด์นด์ค ์ฑ์ REST API ํค | โ |
redirect_uri | ์ธ๊ฐ ์ฝ๋ ์์ ์ฃผ์ (์ฝ์์ ๋ฑ๋ก ํ์) | โ |
response_type | "code" ๋ก ๊ณ ์ | โ |
์์ URL:
https://kauth.kakao.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost:8090/kakao/callback&response_type=code
package com.example.demo.C04Kakao;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@Slf4j
@RequestMapping("/kakao")
public class C02KakaoLoginController {
// ์ค์ ๋ฐ๊ธ๋ ํค๋ ๋ณด์์ ์ธ๋ถ์ ๋
ธ์ถํ์ง ์๋๋ก ์ฃผ์
String REDIRECT_URI = "http://localhost:8090/kakao/callback";
String CLIENT_ID = "YOUR_CLIENT_ID"; // ์ค์ ํค๋ ์ธ๋ถ ๋
ธ์ถ ๊ธ์ง
String RESPONSE_TYPE = "code";
// 1๋จ๊ณ: ์ฌ์ฉ์ ์ธ๊ฐ ์์ฒญ (์นด์นด์ค ๋ก๊ทธ์ธ ์ฐฝ ๋ฆฌ๋๋ ํธ)
@GetMapping("/getCode")
public String getCode() {
log.info("GET /kakao/getCode...");
return "redirect:https://kauth.kakao.com/oauth/authorize?client_id=" + CLIENT_ID
+ "&redirect_uri=" + REDIRECT_URI
+ "&response_type=" + RESPONSE_TYPE;
}
// 2๋จ๊ณ: ์นด์นด์ค์์ ์ธ๊ฐ ์ฝ๋๋ฅผ ๋ฐ์์ค๋ ์ฝ๋ฐฑ
@GetMapping("/callback")
public void callback(@RequestParam("code") String code) {
log.info("GET /kakao/callback... ์ธ๊ฐ ์ฝ๋ ์์ : " + code);
// TODO: ์ดํ Access Token ์์ฒญ ๋จ๊ณ์์ ์ด code ์ฌ์ฉ
}
}
http://localhost:8090/kakao/getCode
GET /kakao/callback... ์ธ๊ฐ ์ฝ๋ ์์ : abcde12345xyz...