안녕하세요 소셜 로그인 관련 질문입니다.
366
작성한 질문수 5
현재 템플릿 프로젝트를 보면
login 을 하고나면 /oauth/kakao/callback 으로 리다이렉트 되어
access_token이 json의 형태로 오고 있습니다.
그러면 사용자의 브라우저로 access_token이 가는건데,
이렇게 해도 사용자한테 token 노출이 없이 다시 로그인 요청을 할 수 있나요?
제가 찾아보니 redirect_uri로 code를 받아오면 카카오 서버로부터 token을 발급 받은뒤
바로 로그인 처리하는 방법도 있던데 어느게 맞는건가요?
답변 1
1
안녕하세요 준표님. 프론트랑 서버랑 분리된 환경이다보니 강의에서는 카카오 토큰을 프론트에서 발급 받은 후 해당 토큰을 이용해서 로그인을 한다고 가정을 하였습니다.
분리된 프론트환경에서 redirec url을 서버쪽으로 지정을하고 소셜 로그인 api에서 카카오 토큰을 받는대신에 authorization code를 받아서 카카오토큰 발급 -> 회원조회 -> 회원가입 및 JWT발급으로 진행하셔도 구현은 가능할꺼로 보이네요. 뭐가 더 맞다라고는 말씀드리긴 힘들꺼같은데 토큰자체를 프론트에 노출하지 않고 싶으시다면 그것도 좋은 방법이라고 생각합니다. 어차피 로그인을 했다는것 자체가 해당사용자라는 것이기때문에 토큰이 탈취되는 상황만 없다면 강의에서 설명드린 내용으로도 충분하지 않을까 생각이드네요!
0
일단 강의에서 나온대로 진행해보겠습니다!
그런데 강의에서는 인증을 Interceptor에서 처리하는데,
SpringSecurity 에서는 Filter에서 (DispatcherServlet 앞에서) 처리를 하더라고요
혹시 두 방식의 차이점(장단점)을 알 수 있을까요?
0
이거는 개인적인 의견인데 참고정도만 하시면 좋을꺼같습니다. 인터셉터로 구현하면 시큐리티 자체에대해서 공부를 하지 않더라도 쉽게 인증을 구현 할 수 있을것이고 시큐리티를 사용하면 아무래도 시큐리티 자체에 대한 학습을 하셔야하죠. 시큐리티가 필터도 워낙 많고 공부할게 많죠. 장점으로는 시큐리티에서 제공하는 기능들을 이용하면 직접 구현해야하는게 줄어들것입니다. 예를 들면 resolver를 구현하지 않아도 회원정보를 받을 수 있거나 어노테이션 기반으로 uri의 권한을 설정 할 수도 있을꺼구요. 테스트할때도 어떤유저로 로그인한 상태이다 이런 것들도 어노테이션으로 지정이 가능합니다.
결과 자체는 비슷하지만 편의기능이 더 많다로 생각이 드네요
OAUTH2 질문
0
105
2
카카오토큰관련
0
94
2
auditing
0
90
1
전역에러처리질문
0
126
2
토큰 발급 관련 문의 드립니다.
0
143
2
이 흐름이 맞을까요??
0
136
2
OpenFeign을 어떤 상황에서 어떻게 사용하는지 감이 안옵니다...
0
234
2
도메인형 패키지 구조 질문
0
256
1
application.yml token 선언 시 오류
0
336
1
토큰발행시 500 INTERNAL_SERVER_ERROR
0
162
1
oauth 회원가입 시 필수 추가 정보는 어떤 식으로 받으시나요?
0
293
2
io.jsonwebtoken.security.WeakKeyException 해결방법
0
399
1
리프레시 토큰 사용 관련 문의 건
0
345
1
Xss 에서 WebConfig 오류 발생됩니다.
0
692
1
applycation.yml 의 readTimeout 이 적용이 안됩니다.
0
706
2
강사님 Swagger에 질문드립니다.
0
297
2
kakao token 발급 시 에러
0
741
2
아직 초반부분인데 질문이있습니다.
0
213
1
socialLoginApiService map 주입
0
294
1
전역 에러 처리 메시지 관리
0
618
2
안드로이드 스튜디오와 협업
0
650
2
String accessToken = authorizationHeader.split(" ")[1];은 accessToken이 맞나요?
0
313
1
SocialLoginApiServiceFactory 생성자 관련 질문입니다.
0
260
1
OAuthAttributes 클래스의 toMemberEntity의 파라미터로 memberType이 들어가야하는 이유가 궁금합니다.
0
449
2





