본문 바로가기

전체 글192

106일차: Main-Projcet Day 13 (로그아웃 에러처리) 이제 백엔드쪽 로직은 AWS 서버에 배포해놓은 상태이다. 프론트 담당자분들이 각자 맡은 부분을 구현하면서 백엔드 서버와 통신했을때 응답이 제대로 오는지, 응답을 가지고 프론트쪽 처리가 제대로 되는지 확인하면서 작업하고있다. 통신을 하다보니 코드에서 몇가지 오류가 발생해서 수정 작업을 진행했다. 로그아웃시 리프레시토큰 검증 로직 제외 로그인 검증에 성공하면 리프레시토큰을 발급해서 Redis에 키-값(memberId - 리프레시토큰) 형태로 저장하고 있었다. 로그아웃을 요청(쿠키에 리프레시토큰 첨부)하면 해당 리프레시 토큰 값을 무효화 시키는방법으로 로그아웃을 구현했었다. "Key" : "Value" || "memberId" : "리프레시토큰값" --(로그아웃요청)---> "memberId" : "logou.. 2023. 7. 14.
105일차: Main-Project Day 12 (권한 설정, 코드 리팩토링) 이제 기능이 어느정도 완료되어서 코드 리팩토링을 시작했다. 다른 팀원분들과 구현 방식이 다른 부분이 있어 해당 부분을 통일시켰다. 또한 권한 관련 로직을 추가했다. 처음 프로젝트를 기획할때에는 고객, 사업자로 구분해서 가입을 받으려고 했으나 일정을 고려해서 해당 기능은 제외했었다. 그런데 생각보다 백엔드쪽 로직이 빨리 구현되어서 추가로 어떤걸 할 수 있을까 고민하다가 예전에 얘기 나왔던 채팅 기능을 추가해봐도 좋을것같다는 얘기가 나왔다. 아직 프론트쪽 작업이 완료되지 않아서 실제로 적용될 수 있을지는 모르겠지만 임의로 사업자 회원을 하나 만들어두고 사업자 - 다른 회원간의 채팅을 구현해보는걸 얘기해보고 있다. 그런데 만약 그 기능이 들어가려면 회원의 권한을 구분해주어야하는데 현재까지 구현된 코드에는 그 .. 2023. 7. 13.
104일차: Main-Project Day 11 (OAuth2.0 회원가입+로그인 로직 구현) 드디어..! OAuth2.0 회원가입/로그인 로직까지 최종 마무리 했다. 지난번 백엔드 서버에서 사용자에게 구글 로그인 URI를 제공하던것에서 프론트 서버에서 로그인 URI를 제공하는것으로 변경했다. (혹시 백엔드 서버에서 URI를 제공하는것으로 유지하려면, 전체 비즈니스로직 처리 결과가 프론트 서버로 전송되는 과정을 추가하면 될것같기는 하다.) 결국, 프론트 서버에서 Authorization code를 구글에서 받아서 백엔드 서버로 전달해주면 백엔드 서버에서는 해당 code를 활용해서 회원 정보를 가져오는 로직을 구현하면 된다. Authorization Code를 가지고 구글에서 AccessToken을 받아오기 위해서는 리디렉션 URI, client id, client secret이 필요하다. cli.. 2023. 7. 12.
103일차: Main-Project Day 10 (프론트엔드 쿠키 저장 안됨 해결!) 엄청엄청 중요했던 날이다. 회원가입-로그인-인증된회원활동-리프레시재발급-로그아웃 전체 로직이 작성되어있었음에도 프론트서버에서 백엔드서버로 쿠키가 넘어오지 않아서 리프레시 재발급-로그아웃 부분을 테스트 못하고 있었다. 정말 이런저런 내용들을 다 찾아보고 설정도 계속 바꿔보면서 테스트를 했는데도 동작이 되지 않았었다. (그래도 덕분에 쿠키 정책, 설정방법, 도메인, CORS 등 굉장히 많이 배웠다!👍🏻) 이때까지 시도했던 방법은 아래와 같다. 참고: 2023.07.05 - [부트캠프 개발일기/Main-Project] - 99일차 - Main-Project Day 6 (Refresh Token, Cookie, 인증 에러 처리) 1. 쿠키에 httpOnly, Secure, SameSite=None 옵션을 설정했.. 2023. 7. 11.
102일차: Main-Project Day 9 (Google OAuth2.0 회원가입, CSR 방식) 뭔가 많이 배운것같아서 기분좋은 월요일이다. 지난주에 회원에 대한 전반적인 기능을 마무리하고 오늘은 지난번에 덮어두었던 OAuth2.0를 다시 적용해보기로 했다. 오늘은 아예 Google OAuth2.0 공식문서를 쭉 살펴보았다. 참고: 구글 OAuth2.0 웹서버 공식문서 웹 서버 애플리케이션용 OAuth 2.0 사용 | Authorization | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 웹 서버 애플리케이션용 OAuth 2.0 사용 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분 developers.google.com 차근차근 내용을 살펴보니 지난번 수업때 배웠.. 2023. 7. 10.
101일차: Main-Project Day 8 (HandlerInterceptor, SecurityContextHolder) 하루하루 지날수록 새로운 경험들을 하고있다...🥲 그래서 이래저래 코드를 막 덧붙이다보니 코드가 지저분해진 것 같기도 해서 일부 리팩토링 작업도 진행했다. 오늘은 하루종일 쿠키와의 전쟁아닌 전쟁이었다. ngrok으로 백엔드서버를 열고 프론트서버에서 회원가입, 로그인요청을 보냈을 땐 정상적으로 작동했다. 그런데 쿠키(리프레시토큰)로 액세스토큰을 재발급 받는 과정에서 계속 403 에러가 발생했다. CORS 설정이나 SameSite 설정을 다 풀어두었는데도 계속 에러가 발생했다. 쿠키가 서버쪽으로 전송되지 않는 문제였는데, 구글링 해서 찾아본 바로는 쿠키의 범위(사용 가능 범위?)는 동일한 도메인 혹은 지정한 도메인에서만 가능하다고 한다. 프론트 측에 도메인 관련 문의했을 땐 http://localhost:X.. 2023. 7. 8.