백엔드

회원가입 로그인을 구현하면서 겪은 이슈 정리

happy_life 2022. 10. 3. 18:45

1. 구글 로그인에서는 비밀번호를 관리할 필요가 없었는데, 회원가입을 하면 User Entity에 비밀번호를 저장할 필요가 생긴다. 이런 경우 User Entity를 따로 또 만들어야하는지에 대한 고민이 생겼다. 

->  보통 개발자분들이 하나로 퉁치라고 조언을 해주셨고.. 이에 따랐다.

 

2. Controller에서 객체 형식으로 데이터를 받을 때 NPE가 발생하는 이슈

 

각각의 파라미터 name,email, password를 @RequestParam으로 받으면 문제없이 잘 동작하지만, 객체 타입으로 받으려고하니 에러가 발생하였다.

 

이유는 SessionUser라는 dto에 빈 생성자가 없었기 때문인데 이를 추가하여 문제를 해결하였다.

 

 

 

2. sns 로그인과 기존 로그인의 구분

sns 로그인은 spring security를 사용했고, 기존 로그인은 말그대로 회원 가입 이후 그 아이디로 로그인하는 것이다. 그런데 각각이 다 다르니 어떻게 통합을 해줄까 고민하였으나, sns 로그인으로 return 받는 id를 속성으로 하고, 각각 아이디를 만드는 방식으로 변경하였다. 따라서 sns 로그인이 성공한 이후, 회원가입의 창이 나오고, 회원 가입을 하면 속성에 sns id값을 받는 방식으로 구현하려고 하였다. 그런데 sns 로그인 성공 이후,  return 된 값을 controller에 받아오는 방법, 다른 url로 redirect하는 방법을 몰라 헤메고 있다. 그 이유는 sns 로그인을 위한 spring security 사용법을 아예 모르기 떄문이다..

관련 자료도 적다. 특히 나는 Oauth2를 사용하는데 Oauth2를 사용하지 않는 것들도 많고 spring security가 구체적으로 어떻게 동작하는지에 대해 설명해주는 자료를 찾기 어렵다. sns 로그인은 구현했지만, 각각의 코드가 어떤 것을 의미하는지 모르기때문에 활용할 수가 없는 것이다.

'백엔드' 카테고리의 다른 글

google otp fast api 서버 적용  (0) 2024.04.05
외장 톰켓에서 서버 실행해보기  (0) 2024.01.10
jwt + spring security 동작 과정 간단 정리  (1) 2023.05.14
[백엔드] jwt vs session  (0) 2023.04.13