내배캠 134일차

·2023년 3월 27일
0

내일배움캠프

목록 보기
137/142

월요일20230327
1. 토큰 코드 수정
2. 피드백 수정 - 중복체크 후 통과메시지 프론트단 처리, 팀리스트에서 상태코드 잘 못 뜨게되는 오류 수정, 공고가 마감되면 신청 단계에서도 나의 팀에서 리스트가 보이게 되는 코드 수정

토큰 코드 수정

  • 기존에 로직을 리프레쉬 토큰이 만료가 되어도 액세스 토큰이 유효하면 리프레쉬 토큰을 재발급하고, 반대로 액세스 토큰이 만료되어도 리프레쉬 토큰이 유효하면 액세스 토큰을 재발급하는 형태로 로그인을 유지하는 미들웨어를 짰었는데 이 코드에서 오류가 있어서 수정했다!
const verifyToken = (token) => {
  try {
    return jwt.verify(token, process.env.KAKAO_SECRET);
  } catch (error) {
    if (error.name === 'TokenExpiredError') {
      return null;
    }
  }
};

const checkAccess = verifyToken(accessToken);
const checkRefresh = verifyToken(refreshToken);

if (checkAccess === null) {
      if (checkRefresh === null) {

원래 이렇게 verifyToken에서 토큰 만료이면 null 값을 반환하게 만들어서 checkAccess === null식으로 검증했는데 액세스 토큰 쿠키를 지우고 console.log(checkAccess) 찍어보니 undefiend가 뜨더라.....

토큰이 만료가 되었을때 TokenExpiredError가 안나고 JsonWebTokenError: jwt must be provided 에러가 뜨더라! 그러니까 return null이 작동안하지!

if (error.message === 'jwt expried') {
  return null;
}

만료가 된 경우에만 null값으로 반환하고 다른 invaild token 그러니까 토큰이 조작된 경우나 없거나 하면 undefined가 되어 에러가 발생하게 코드를 수정했다.

profile
개발자 꿈나무

0개의 댓글