세션은 탭을 닫으면 사라진다
<aside> 📄 참고링크
[Spring Boot] Spring Boot + JWT를 이용한 Token 처리
스프링부트 시큐리티 26강 - jwt토큰 만들어서 응답하기
</aside>
<aside> 💡 방식
[REST API를 활용]
*카카오토큰을 서버에서 가공하지 않고 그대로 클라이언트에게 직접 넘겨주면 고소당할 수도 있다고 함. 그럴만도-토큰이 털리면 카카오안에 저장된 그 사용자의 개인정보가 다 털리는 것이므로..

</aside>
카카오
<https://kauth.kakao.com/oauth/authorize?client_id=097d883a03c0da953d919d990701da5f&redirect_uri=http://localhost:8080/login/oauth2/code/kakao&response_type=code>
네이버
<https://nid.naver.com/oauth2.0/authorize?client_id=n4ayopJ7b7D_4KefcRcb&redirect_uri=http://localhost:8080/login/oauth2/code/naver&response_type=code>
구글 (코드 발급은 됨, 로그인은 아직)
<https://accounts.google.com/o/oauth2/v2/auth?response_type=code&scope=openid%20email&client_id=417043208647-4staa1cqmcp9bph79l9tv7jusva0tmia.apps.googleusercontent.com&redirect_uri=http://localhost:8080/login/oauth2/code/google>
⇒ 리소스서버마다 상이
⇒ API 문서 참고
Service
getAccessToken
<aside> 💡 WebClient
Spring WebClient
웹으로 API 호출
Non-Blocking 방식
⇒ 요청 보내고 결과를 기다리지 않고 바로 다른 요청을 처리함. (스프링에서 권장하는 방법)
</aside>
받아온 토큰(access)을 이용해서
사용자 정보를 가져옴
API 문서
카카오
네이버
오류
MySQL 시간 안맞음 해결
⇒ application.yml에서 datasource 부분에
OKKY - [해결]java에서 localdatetime타입으로 데이터를 mysql의 datetime타입으로 넣었는데 9시간이 당겨져서 들어갑니다ㅠㅠ

추가해준다.
용어

Authentication (인증-AccessToken,RefreshToken 체크)
접근 자격이 있는지 검증
Authorization (인가-AccessToken,RefreshToken부여)
접근할 권한 부여, AccessToken이 부여됨
AccessToken
리소스서버에게서 리소스 소유자
Refresh Token