inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

안녕하세요 소셜 로그인 관련 질문입니다.

366

LYY

작성한 질문수 5

0

현재 템플릿 프로젝트를 보면

login 을 하고나면 /oauth/kakao/callback 으로 리다이렉트 되어


access_token이 json의 형태로 오고 있습니다.

그러면 사용자의 브라우저로 access_token이 가는건데,

이렇게 해도 사용자한테 token 노출이 없이 다시 로그인 요청을 할 수 있나요?

 

제가 찾아보니 redirect_uri로 code를 받아오면 카카오 서버로부터 token을 발급 받은뒤

바로 로그인 처리하는 방법도 있던데 어느게 맞는건가요?

 

JPA spring-boot web-api

답변 1

1

구파고

안녕하세요 준표님. 프론트랑 서버랑 분리된 환경이다보니 강의에서는 카카오 토큰을 프론트에서 발급 받은 후 해당 토큰을 이용해서 로그인을 한다고 가정을 하였습니다.

 

분리된 프론트환경에서 redirec url을 서버쪽으로 지정을하고 소셜 로그인 api에서 카카오 토큰을 받는대신에 authorization code를 받아서 카카오토큰 발급 -> 회원조회 -> 회원가입 및 JWT발급으로 진행하셔도 구현은 가능할꺼로 보이네요. 뭐가 더 맞다라고는 말씀드리긴 힘들꺼같은데 토큰자체를 프론트에 노출하지 않고 싶으시다면 그것도 좋은 방법이라고 생각합니다. 어차피 로그인을 했다는것 자체가 해당사용자라는 것이기때문에 토큰이 탈취되는 상황만 없다면 강의에서 설명드린 내용으로도 충분하지 않을까 생각이드네요!

 

0

LYY

일단 강의에서 나온대로 진행해보겠습니다!
그런데 강의에서는 인증을 Interceptor에서 처리하는데,
SpringSecurity 에서는 Filter에서 (DispatcherServlet 앞에서) 처리를 하더라고요
혹시 두 방식의 차이점(장단점)을 알 수 있을까요?

0

구파고

이거는 개인적인 의견인데 참고정도만 하시면 좋을꺼같습니다. 인터셉터로 구현하면 시큐리티 자체에대해서 공부를 하지 않더라도 쉽게 인증을 구현 할 수 있을것이고 시큐리티를 사용하면 아무래도 시큐리티 자체에 대한 학습을 하셔야하죠. 시큐리티가 필터도 워낙 많고 공부할게 많죠. 장점으로는 시큐리티에서 제공하는 기능들을 이용하면 직접 구현해야하는게 줄어들것입니다. 예를 들면 resolver를 구현하지 않아도 회원정보를 받을 수 있거나 어노테이션 기반으로 uri의 권한을 설정 할 수도 있을꺼구요. 테스트할때도 어떤유저로 로그인한 상태이다 이런 것들도 어노테이션으로 지정이 가능합니다.

결과 자체는 비슷하지만 편의기능이 더 많다로 생각이 드네요

0

LYY

매번 상세한 답변 감사드립니다!
정말 도움 많이 됐어요!

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