Code States/TIL

[0622] jwt를 이용한 로그인 시스템 구현

ki1111m2 2023. 6. 22. 18:22

user 서버에 로그인 요청 -> user db에서 ID/Password 대조 후 일치하는 사용자면 토큰 생성 -> 응답으로 유저에게 토큰 반납

프론트엔드가 없으므로, main 서버에 api 요청시 헤더에 수동으로 토큰값 입력 -> main 서버에서 토큰 검증

 

 

jwt 토큰을 생성하기 위한 함수 생성

로그인 로직 구현

바디에 ID/Password를 담아서 요청시 DB에 일치하는 유저가 있는지 확인

user_id와 user_type을 담은 토큰 생성

로그인 및 토큰 생성 구현 완료

 

헤더에 포함된 토큰을 검증하는 로직 구현

 

 

트러블슈팅

[ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

서버가 2개 이상의 응답을 보내려할때 발생
if문 밖의 res.json 문을 지워 해결

 

트러블슈팅

Invalid Token Error

console.log(token)을 통해 토큰값을 확인한 결과, 제대로 들어간 것을 확인
그러나 Invalid Token Error 발생

 

https://stackoverflow.com/questions/48606341/jwt-gives-jsonwebtokenerror-invalid-token

토큰 앞의 Bearer를 제거한 후 해결했다는 글을 발견

split(' ')을 통해 토큰값만 불러온 후 해결