🌿SPRING/🌱연습[SPRING]

[SPRING] 회원정보 조회 로직 만들기

디카페인라떼 2022. 9. 8. 02:26

팀과제를 하는데 회원정보를 수정하고 회원 정보만 조회하는 로직을 만들기로 했다.

그동안에 해오던 CRUD여서 자만했는데 혼자서 하다가 혼란에 빠졌었다..

 

회원정보이기 때문에 로그인한 사용자의 userDetails를 사용하면 되는데 그걸 생각을 못하고

 

2022.08.23 - [SPRING] - [SPRING] Spring Security framework

 

[SPRING] Spring Security framework

: Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크. 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어줌!

wearegolden.tistory.com

 

평소 CRUD 처럼 repository에서 id 값에만 집착을했다...ㅠㅠ

그러고나선 받은 Optional을 어떻게 처리할까 하고... 거의 1,2 시간은 헤멨다 ㅎㅎ...

 

그래서 물어물어 얻은 로직 생성 방법 두가지 ...

잊지않기 위해서 ^^

 


TokenProvider 에서 UserDetails 가지고 오기 

 

[ResponseDto] 설정 => 보여줄 정보 값을 설정함

[Service] getMyInfo 메소드 설정

 

토큰 프로바이더에서 겟멤버를 해오는 메소드를 member에 저장해준다

 

 

[TokenProvider] getMemberFromAuthentication

return 값 : 유저디테일스 감싸서 (authentication에서 Principal에서 Member) 

 = 현재 로그인한 유저의 userdatails 값

 

 

[Service] getMyInfo 메소드 설정

responseDto 객체에 넣어주고 return ....

 

단 3줄로 끝 ^^

 


UserDatils에서 id 값 가지고와서 하는 방법

[Service]설정

 

 

[레포지토리] findByEmail.. String email 받아오기 

 

[Controller] 

usedId 을 userDetails에서 바로 userName 을 가지고 온다! (로그인한 사용자의 id = String email)

 

그리고 리턴값에 서비스에서 설정한 메소드를 넣어준다. 
깔-끔

 

 

 


포인트는 로그인한 유저정보를 UserDetails에서 바로 가지고 올수 있다는 점이었다.

 

이부분을 놓치고 따로 id를 받아서 하려니까 뭔가 로직이 꼬였던것 같다..ㅠㅠ

 

회원정보 확인 부분도 그렇고... security를 제대로 이해하지 못한 것 같다... 

이렇게 오늘 또 배운다.... 할수있다...!!