오래 못 할 짓 하지 않기
[ Spring boot Security ] [ Token X ] 5. 로그인 ↔ DB 본문
728x90
DB에 회원이 로그인한 정보를 담아야 하기 때문에
이렇게 로그인할 때 넘어오는 정보에서 어떤 걸 DB에 저장할지 모아둔다.
그리고 로그인할 때 들어오는 정보들에 대해서
처음 들어오는 정보인지 그렇지 않은지를 판단하여
i) 처음 들어오는 정보 → 응답받은 내용을 기반으로 UserEntity를 만든다.
ii) 이미 있는 정보 → 변한 내용이 있을 수도 있으니 바뀔 수 있는 것들을 업데이트 해준다.
하지만 고려할 점이 있다.
어떤 걸로 이 사람이 이미 있는지 아닌지 판단해야한다.
→ 그러기 위해서 정보를 고유한 값으로 만들 수 있도록 만든 것이 username 이다.
provider와 providerId를 조합하여 하나의 String으로 만들어서 이 또한 같이 넣어준다.
이는 같은 유저마다 같은 값이 나오지 않으므로
이를 고유한 값으로 판단하여 DB에 있는 유저인지 아닌지 판단할 수 있다.
이를 처리하기 위해 Service 단에서 다음과 같이 추가한다.
● 48번 줄 : provider와 providerId를 조합하여 하나의 String으로 만들기
만드는 이유 : 고유 key + 이게 있냐 없냐로 로그인(해당 사이트 이용) 여부 판단하기
● 54 ~ 62 번 줄 : username이 없다면 구글/네이버 에서 로그인해서 응답받은 정보를 기반으로
UserEntity를 만들고 저장한다.
● 64~ 72 번 줄: username이 있다면 업데이트 되었을 값들만 업데이트 해준다.
결과
짜잔
'혼자하기 > 연습 1) OAuth' 카테고리의 다른 글
[ Spring boot Security ] [ Token X ] 4. 로그인 처리 (0) | 2024.03.03 |
---|---|
[ Spring boot Security ] [ Token X ] 3. Oauth 처리 Service stage (0) | 2024.03.03 |
[ Spring boot Security ] [ Token X ] 2. oAuth 에 대한 application 파일 설정 (0) | 2024.03.03 |
[ Spring boot Security ] [ Token X ] 1. Oauth 로그인 사용하기 위한 밑작업 (0) | 2024.03.03 |
[ Spring boot Security ] 8. JWT 검증 필터 (0) | 2024.03.03 |