POJO 1~2 :
- Controller 클래스 메소드 아닌 if문으로 처리 => 개선 필요
POJO 1-3 :
- handlermapping 등장
- req, res 사용할수있게 됨. 메소드 설계-> 리턴타입, 파라미터 결정하는 것
Controller 리턴타입 변화(POJO 1~3, Spring demo)
- ActionForward => String => Object(Model and View 클래스 모방) => String
초기화
- 서블릿 -> 늦은 초기화 / spring -> 이른 초기화(컨테이너)
관심사의 분리
- 관심사(입력-처리-출력)
로그인 요청(LoginForm 카카오 로그인 버튼 클릭 시 redirect_uri=http://localhost:8000/auth/kakao/callback)
코드 받기 요청(진행) & 인증 및 동의 요청 & 로그인 및 동의 & 인가코드 발급
토큰 발급요청(파라미터에 코드 넣어서 다시 요청 redirect_uri=http://localhost:8000/auth/kakao/callback)
토큰 발급 & 로그인 완료
웹 서버 주소 내 애플리케이션에 추가 : http://localhost:8000
클라이언트 키(Rest API 키) : {Rest API 키}
카카오 로그인 요청 콜백 주소 : http://localhost:8000/auth/kakao/callback
카카오 로그아웃 주소 : http://localhost:8000/auth/kakao/logout
동의 구성
- id : 숫자
- username, password
포스트맨 주소
- 로그인요청 url(포스트맨 로그인요청)
- https://kauth.kakao.com/oauth/authorize?client_id={Rest API 키}&redirect_uri=http://localhost:8000/auth/kakao/callback&response_type=code
- 인가코드 받기 : https://kauth.kakao.com/oauth/authorize?client_id={Rest API 키}&redirect_uri=http://localhost:8000/auth/kakao/callback&response_type=code
OAuthToken.java : VO 생성하여 카카오로부터 받은 토큰을 저장할 수 있도록 @Data 처리함.
loginForm.jsp : 카카오 로그인 이미지 및 로그인요청 a태그로 넣기(kakao_login_medium_narrow.png)
KakaoController.java :
- 로그인창에서 인가코드 요청 이후 @ResponseBody를 통해 인가코드를 콜백주소를 통해 파라미터로 받기
- 인가코드와 헤더를 담아서 토큰 발급을 요청함.
- 콜백주소로 토큰을 OAthToken에 JSON형태로 저장해둠.
- 저장해 둔 토큰을 이용하여 사용자 정보를 요청함.
로그인 진행이 된 뒤로도 페이지가 이동을 할 때 계속 로그인이 유지될 수 있도록 토큰이 제공된다.
이때 필요한 것이 refresh_token이다.
JSON형식으로 깔끔하게 볼 수 있음!!
String JSON을 오가는 데이터 관리를 할 줄 알아야 함!!
Authorization: Bearer ${ACCESS_TOKEN}
Content-type: application/x-www-form-urlencoded;charset=utf-8