카카오의 로그인 api에 비밀키를 얻었다는 전제하에 글을 씀
대부분의 소셜로그인은 OAuth2(https://oauth.net/2)방식으로 데이터를 처리함
OAuth2는 문자열로 구성된 토큰을 주고받는 방식으로 토큰을 발행하거나
검사하는 방식을 통해서 서비스 간 데이터를 교환함
kakao의 경우는 REST API키를 이용해서 인가코드를 받음
-> 인가 코드는 '리다이렉트 URI'로 지정된 곳으로 전달됨
-> 인가코드를 자신의 비밀키와 같이 이용해 Access Token을 생성
-> Access Token을 이용해서 사용자의 정보를 요청함(이때 사용자가 동의했던 정보들을 얻어오는데 주로 이메일을 얻어오는 경우가 대부분)
카카오같은 경우엔 이메일을 필수 동의로 얻어오려면 검수신청을 통해서 검수받아야함 그러니 선택동의로 사용
spring:
security:
oauth2:
client:
registration:
google:
client-id: ${GOOGLE_CLIENT_ID}
client-secret: ${GOOGLE_CLIENT_SECRET}
scope:
- profile
- email
naver:
clientId: ${NAVER_CLIENT_ID}
clientSecret: ${NAVER_CLIENT_SECRET}
authorizationGrantType: authorization_code
redirect_uri: '{baseUrl}/{action}/oauth2/code/{registrationId}'
scope:
- nickname
- email
kakao:
client-name: kakao
clientId: RESTAPI 키
authorizationGrantType: authorization_code
redirect_uri: '{baseUrl}/{action}/oauth2/code/{registrationId}'
client-secret: 얻은암호
client-authentication-method: POST
scope:
- profile_nickname
- account_email
# Provider 설정
provider:
naver:
authorizationUri: https://nid.naver.com/oauth2.0/authorize
tokenUri: https://nid.naver.com/oauth2.0/token
userInfoUri: https://openapi.naver.com/v1/nid/me
userNameAttribute: response
kakao:
authorizationUri: https://kauth.kakao.com/oauth/authorize
tokenUri: https://kauth.kakao.com/oauth/token
userInfoUri: https://kapi.kakao.com/v2/user/me
userNameAttribute: id
https://deeplify.dev/back-end/spring/oauth2-social-login#applicationyml
자바웹 개발 워크북
카카오 로그인 API