본문 바로가기
日常

[항해99 8기 - 24일차] jwt 같은 과제 끝

by stella_gu 2022. 8. 4.

정확히 25일차 새벽이지만 24일차라 하자.

 

이번 주차 과제는 정말이지 손을 댈 수가 없었다.

심화반 강의를 3주차까지 듣고 이건 아니다 싶어서 학습자료를 봤다. 이것도 아니었다.

 

과제 요구 사항은 mongoose를 sequelize로 바꾸란 거였는데 mongoDB로 연결된 프로젝트랄 게 딱히 없었고..

MySQL 쿼리 짜는 법도 공부해보고 싶고 sequelize도 도통 알아먹을 수가 없어서 어느 정도 이해는 하고 과제를 시작하고 싶었다.

 

이번주차 과제에 필요한 것들 확인하고 노드교과서만 주구장창 보면서 코드 따라 치다 보니 금세 화요일 밤이 되었다. 

sequelize로 대충 모델 윤곽만 잡아놓고 오늘(수요일) 하루 종일 눈 빠지도록 기능 구현하다가

jwt 토큰 쓰는 걸 잊고(과제 요구사항) passport 써서 세션에 쿠키를 담아부렀다.

 

노드교과서에서 카카오 로그인 구현하면서 배운 passport를 복습도 할 겸 겸사겸사 써본 건데..

이때부터 또 시작 되었다. '삽질'

 

찾아보니 passport-jwt란 게 있네?

아 그래 일단 써보자

 

그래 하는 거 bcrypt로 간단하게 암호화 해서 db에 저장도 하고~ passport-jwt로 토큰도 주고~ 다 해보자~

(그만 해. 그냥 세션 써.)

 

 

역시나 언제나의 삽질이 그렇듯

아무리 봐도 잘못된 부분이 없는데!

토큰 검증 자체가 안 된다!

로그인 할 때 발급은 잘 되는데!

passport LocalStrategy 부분은 잘 되는데 jwt가 문제다!

정말 jwt 같다!!!

 

 

 

 

이럴 때 문제는 뭐다?

오타 아니면 오타 아니면 오타.

 

 

ExtractJwt.fromAuthHeaderAsBearerToken() : 헤더의 jwt 토큰 받아오는 함수

JWTStrategy로 jwt 토큰을 받아오려면 위처럼 함수가 필요한데 마지막에 "()"를 안 붙어 버렸다..

 

6시부터 밥도 못 먹고 여기저기 뜯고 붙이고~ 씹고 뜯고 맛보고 즐기고~~~

그러던 중 순회 오신 기술매니저님의 passport랑 jwt는 같이 쓰지 않는 게 좋을 거란 말을 듣고 포기했더니 보이는 게 아닌가..ㅎ

 

공식문서에서 function인 거 얼핏 봤었는데... 역시 자바고 자바스크립트고 뭐고 젤 중요한 언어는 영어다...!?

 

 

 

 

 

 

 

잠온다

 

배포는 내일 할랭~~~~~