sushistack / utterance.deeplify

0 stars 0 forks source link

back-end/spring/oauth2-social-login #7

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

[Spring Boot] OAuth2 소셜 로그인 가이드 (구글, 페이스북, 네이버, 카카오) | Deeplify

스프링부트를 이용하여 구글, 페이스북, 네이버, 카카오 OAuth2 로그인 구현하는 방법에 대해서 소개합니다.

https://deeplify.dev/back-end/spring/oauth2-social-login

CodeLover82 commented 3 years ago

headerutils 하고 cookieutils 코드는 없는것 같습니다! 그것도 올려주시면 감사하겠습니다.

SeokSeokNa commented 3 years ago

안녕하세요 개발자님 ! 소셜로그인애 관심이 생겨 해본결과 로그인 까지는 해결되었으나 db 설계와 로그인 이후 api 요청을 어떤식으로 가져가야되나 몰라 글을 찾아보던중

개발자님이 작성하신글을 보게되었는데요 제가 이해가 너무 쏙쏙 가네요 !! 괜찮으시다면 글을 좀 퍼가도 괜찮을까요?

sushistack commented 3 years ago

@CodeLover82 추가 완료했습니다!

sushistack commented 3 years ago

@SeokSeokNa 네네, 도움이 되어서 다행이네요! 다른 곳에 사용해도 상관은 없습니다, 다만 출처만 링크로 남겨주시면 좋을 것 같습니다!

SeokSeokNa commented 3 years ago

@deeplify 감사합니다 !

devvhyun commented 3 years ago

안녕하세요 ! 작성자님 혹시 AuthTokenProvider.java 에서 new User(claims.getSubject(),"",authorities); 이 부분이 이해가 안되서 그런데 어떤 생성자를 호출하는건가요?

sushistack commented 3 years ago

@devvhyun

org.springframework.security.core.userdetails.User 입니다. 프로젝트 깃헙에 올려져 있으니 확인하시면 될 것 같아요~

junnnyyy commented 3 years ago

좋은 글 감사합니다! 소셜로그인 만드는데 많은 도움이 되었습니다. 특히 시퀀스 부분이 이해하는데 많은 도움이 됐습니다! 괜찮으시다면 포스팅에 출처 남기고 일부분 퍼가도 괜찮을까요? :)

sushistack commented 3 years ago

@junnnyyy 넵, 출처는 링크로 남겨주시면 감사하겠습니다!

jinan159 commented 3 years ago

와... 프로젝트가 왠만한 유료 강의에서 봤던 것들 보다 설계가 잘 되어있는것 같습니다!!! 단순히 OAuth2 로그인에 대한 내용뿐만 아니라 SpringSecurity나 CustomService 패키지 설계 등등 배울게 정말 많네요...👍

09281 commented 3 years ago

정말 큰 도움이 됐습니다! refresh token을 받아오려면 어떻게 해야 하나요? header에 Authorization: Bearer {expired access token}를 넣고 /auth/refresh에 GET요청으로 보내면 되는건가요?

sushistack commented 2 years ago

@jinan159 감사합니다!

sushistack commented 2 years ago

@09281 구현은 개발자에 따라서 다르게 할 수 있지만, 제 구현은 말씀하신게 맞습니다~!

minkukjo commented 2 years ago

@deeplify 작성하느라 굉장히 고생많으셨을텐데 좋은 예시 잘 보고 갑니다. 이러한 JWT 예제가 굉장히 보일러플레이트 코드가 많은데, 작성자님 코드를 보니 라이브러리화해도 될 정도로 깔끔하게 구현을 해놓으셔서 놀랐습니다. 좋은 예제 작성해주셔서 감사합니다.

jihuni1026 commented 2 years ago

안녕하세요! 글 정말 잘 읽었습니다. 이렇게 되면 API 호출 마다 토큰을 검증해야 되는거죠?

CptBluebear commented 2 years ago

안녕하세요. 이 글 보고 정말 큰 도움이 되었습니다. 정말 좋은 예시입니다. 그런데 코드보고 궁금한 점이 있습니다. User 정보를 저장하기위해 OAuth2User 객체에서 getid를 이용해 각 플랫폼별 고유 uid? 를 가져오고, 이를 User 정보의 키 값으로 사용하고 있는데 만약, 정말로, 매우 극악의 확률일거 같긴 하지만 A유저의 X 플랫폼 uid가 11111 B유저의 Y 플랫폼 uid가 11111 이런 경우일때 혹시 문제가 생길 수 있지 않는지 궁금합니다.

leejaeyeong commented 2 years ago

안녕하세요. 포스팅 잘 읽었습니다. facebook 인증 내용에 리다이렉션 url이 'google'로 되어있는 것 같아서 댓글 남깁니다.

wkdgudcjf commented 2 years ago

안녕하세요. 혹시 이 글을 참조로 개인 블로그에 기록해도 될까요? 출처를 남기겠습니다!

Anna-Jin commented 2 years ago

개발자님 덕분에 소셜 로그인 구현하는데 많은 도움이 됐습니다! 감사합니다!

julie0005 commented 2 years ago

소셜로그인 시에 프론트에서 소셜로그인 완료 후 서버의 토큰을 받는 페이지를 query parameter로 요청할 때 스프링 부트에서는 해당 query parameter를 어디서 받나요? OAuth2AuthenticationSuccessHandler에서 determineTargetUrl을 보면 쿠키로 프론트에서 redirect할 주소를 받는 것 같아서요! 혹시 쿼리 파라미터로 전달한 부분이 어떤 과정을 거쳐서 쿠키로 가게 되는 지 구체적으로 설명해주실 수 있나요?

K-J-HYEON commented 2 years ago

프로젝트 카카오 소셜 로그인 구현하는데 참고 할게요 감사합니다!

taewoo0282 commented 2 years ago

안녕하세요! 글 너무나 잘 읽었습니다. 너무나 많은 도움이 되었구요. 그런데.. refreshToken 에서 막히네요. tokenExpiry 이후 호출하면 INVALID_ACCESS_TOKEN 이전에 호출 하면 NOT_EXPIRED_TOKEN_YET

으로 인해서 정상적으로 토큰이 갱신을 못하는거 같은데요. 무엇을 잘못했을지요..?

hootch commented 1 year ago

좋은 글 감사합니다!

sung3441 commented 1 year ago

좋은 글 너무 잘읽었습니다! 궁금한 점이 하나 있는데 OAuth2AuthenticationSuccessHandler 클래스에서 determineTargetUrl 메서드에 보면 userRefreshToken을 저장하는 부분이 있습니다. 이 부분을 변경 감지로 처리하시려고 setter만 이용하신 것 같은데 @Transactional이 없는 상태에서 변경 감지 기능을 사용할 수 있나요? 상세한 글, 설명 잘읽었습니다. 감사합니다.

Starlight258 commented 2 months ago

OAuth2 핵심을 담아 이해하기 쉽게 설명해주셨네요! 도움 많이 받았습니다. 감사드립니다!!

tjdgus52 commented 3 weeks ago

안녕하세요 좋은글 너무 잘봤습니다. 혹시 로그아웃기능소스는 깃헙에 없는거 같던데 업로드 해주실수 있을까요?ㅠㅠ