들어가며
실전프로젝트 4주차도 막을 내렸다.
일주일동안 끝나지 않는 소셜로그인, JWT와의 싸움을 하기도 했고 에러 코드를 만들거나 예외처리, 응답값 통일 등등 여러가지 코드를 작성했다. 프로젝트가 점점 모습을 갖춰 갈 수록 욕심이 생기기도 하고 아쉬운 부분들이 눈에 보이기도 해서 남은 한 주동안 목표한 부분을 빨리 만들고 완성도를 높이는 작업을 하고 싶어진다.
오늘의 WIL은 지난 일주일 동안 작성한 삽질로그와 정리한 내용을 간단하게 되짚어보고, 한 주간의 회고록을 작성하고자 한다.
OAuth2.0
OAuth2.0은 소셜 로그인을 도입한다면 필연적으로 마주치게 되는 기술이다.
네이버, 카카오, 구글 같은 어느정도 검증된 플랫폼을 이용하여 사용자 인증과 리소스에 대한 권한을 획득할 수 있도록 하는 역할을 한다.
OAuth는 기존의 아이디와 비밀번호로 사용자 인증을 하는 방식의 보안 취약점을 보완하기 위해 등장하였으며 토큰을 발행하여 권한을 부여하는 방식을 사용한다.
삽질로그
[삽질로그] 소셜 로그인 후 생성한 JWT에 ADMIN 권한 부여하기
JWT를 사용하면서 관리자의 권한을 부여하는 방식을 고민했었다.
관리자용으로 아이디와 비밀번호를 이용하여 회원가입을 하여 관리자 권한을 부여하는 방식이 있었고 가장 보편적으로 사용하는 방식이지만, 프로젝트 기획상 아이디와 비밀번호로 회원가입하는 방식을 아예 도입하지 않았기 때문에 이 방식을 사용하려면 추가 로직을 작성해야하는 번거로움이 있었다.
그래서 기존 소셜 로그인을 최대한 활용할 수 있는 방법이 없을까 생각해보니 기존 회원가입을 한 사용자(현재는 개발자 = 팀원들)의 권한을 USER에서 ADMIN으로 변경해주면 간단하게 처리할 수 있겠다고 판단하였다.
이 기존 사용자의 권한을 변경하는 과정해서 삽질한 과정을 정리해본 글이다.
[삽질로그] 배포 후, cookie가 넘어가지 않는 문제
중간 발표 때, 질문해주셨던 부분 중 하나가 '배포 후에 쿠키 전송이 잘 되느냐?' 였는데 사실 처음에는 로컬에서 잘 되니까 배포를 하고 나서도 잘 되지 않을까? 하는 막연한 생각을 가지고 있었다. 그런데 막상 배포를 하고 나니까 refresh token을 담은 쿠키를 찾을 수가 없었다. 쿠키가 넘어가질 않고 있었던 것이다.
구글링을 해보니 크롬 80으로 업데이트 된 이후로는 same-site 속성이 None에서 Lax로 변경되었고, 이 때문에 Cross domain간의 쿠키 전송이 불가하다고 했다. 따라서 쿠키 설정에서 직접 same-site 속성을 None으로 변경해주고, secure 속성을 true로 변경 후 https를 사용하면 해결이 된다고 하는데 왜인지 여전히 해결이 되지 않았다.
다시 구글의 바다에서 헤엄친 결과, 쿠키 전달은 메인 - 서브 도메인 사이에서만 가능하다는 글이 있었다. 기존에는 프론트와 백의 도메인이 서로 완전히 달랐기 때문에 프론트 도메인에 서브 도메인을 추가해주었더니 해결이 되었다.
하지만 여전히 same-site 속성을 None으로 설정해 주었음에도 이 문제가 해결되지 않은 이유는 파악하지 못했다.
회고록
헤어나올 수 없는 JWT의 늪
실전프로젝트를 시작한 이후로 계속소셜 로그인이랑 JWT를 붙잡고 있다. 이놈의 로그인 기능은 하나를 고치고 나면 또 다른 곳에서 문제가 터진다!
HTTPS 문제까지 해결하고 나면 더이상 로그인에 문제가 없길 바랄 뿐이다....
요즘에는 주위 사람들한테 웹사이트에 로그인 할 때 개발자들한테 감사하면서 버튼 클릭하라고 말하고 다닌다ㅋㅋㅋㅋ
나도 그냥 누를 땐 편했지... 개발자들의 피와 눈물이 섞여있을 줄은 몰랐지...
내가 쓰는 모든 서비스의 보안과 사용자 경험을 책임지고 있는 모든 개발자분들에게 감사를 표한다😂
실전프로젝트 5주차를 시작하며
실전프로젝트를 시작한 지 얼마 안된거 같은데 벌써 5주차에 접어들었다. 이제 이번 주차가 지나고 나면 최종 프로젝트 제출 주간이 되고, 최종 발표를 끝마치고 나면 프로젝트는 정말 끝이 난다.
개발 공부를 시작한 지 9개월 차. 이제 정말 취업 준비를 해야할 날이 머지 않았다는게 실감이 나지 않는다. 1년 이상 공부할 각오를 하고 결심한 이직이었는데 벌써 1년 차가 다가오고 있다는 것도 믿기지가 않는다. 시간이 참 빨라...
이제 얼마 남지 않은 프로젝트 기간 동안 목표하고자 했던 일을 제대로 마무리 하고 당당하게 우리 서비스를 사람들에게 보여주고 싶다!
'Study > WIL' 카테고리의 다른 글
[WIL] 항해99 week10 (07/11 ~ 07/17) (0) | 2022.07.17 |
---|---|
[WIL] 항해99 week9 (07/04 ~ 07/10) (0) | 2022.07.10 |
[WIL] 항해99 week 8 (06/27 ~ 07/03) (0) | 2022.07.05 |
[WIL] 항해99 week7 (06/20 ~ 06/26) (0) | 2022.06.26 |
[WIL] 항해99 week6 (06/13 ~ 06/19) (0) | 2022.06.21 |