package com.care.dbQuiz.member;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import org.springframework.stereotype.Service;

@Service
public class KakaoService {

	public void getAccessToken(String code) {
		String reqUrl = "https://kauth.kakao.com/oauth/token";
		String reqParam = "grant_type=authorization_code";
		reqParam += "&client_id=231dcfa0f6c9f5d6db11c3d33c9b755c";
		reqParam += "&redirect_uri=http://localhost:8065/dbQuiz/kakaoLogin";
		reqParam += "&code="+code;
		
		HttpURLConnection conn;
		try {
			URL url = new URL(reqUrl); //POST 요청에 필요로 요구하는 파라미터 스트림을 통해 전송
			conn = (HttpURLConnection)url.openConnection();
			conn.setRequestMethod("POST"); //POST 요청을위해 기본값 false에서 setDoOut으로 true변경
			conn.setDoOutput(true);//post 매소드를 이용해서 데이터를 전달하기위한설정
			
			//기본 OutputStram을 통해 문자열로 처리할수있는 OutputStreamWriter변환후 처리속도를 빠르게 처리하기위해
			//BufferedWriter변환한다
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
			bw.write(reqParam);
			bw.flush();
			
			int responseCode = conn.getResponseCode(); //결과 코드가 200이면 성공
			System.out.println("responseCode:"+responseCode);
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
//curl -v -X POST "https://kauth.kakao.com/oauth/token" \
//-H "Content-Type: application/x-www-form-urlencoded" \
//-d "grant_type=authorization_code" \
//-d "client_id=${REST_API_KEY}" \
//--data-urlencode "redirect_uri=${REDIRECT_URI}" \
//-d "code=${AUTHORIZE_CODE}"
@Autowired private KakaoService kakao;
	@GetMapping("kakaoLogin")
	public void kakaoLogin(String code) {
		System.out.println("code:"+code); 	
		kakao.getAccessToken(code);
	}
<tr>
		<td>
			<a href="https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=231dcfa0f6c9f5d6db11c3d33c9b755c&&redirect_uri=http://localhost:8065/dbQuiz/kakaoLogin"			
			>	
				<img src="https://k.kakaocdn.net/14/dn/btroDszwNrM/I6efHub1SN5KCJqLm1Ovx1/o.jpg">
			</a>
		</td>
	</tr>

'프로그래밍 > HTML' 카테고리의 다른 글

68-4  (0) 2023.07.18
68-3 토큰  (0) 2023.07.18
68-1  (0) 2023.07.18
67-2  (0) 2023.07.17
67-1  (0) 2023.07.17

+ Recent posts