10.4절까지 진행된 프로젝트를 실행시키면 토큰이 만료되었을 때 아래와 같이 서버에서 419 에러를 보냅니다.
이러한 문제를 해결하기 위해 10.4절이 끝나면서 다음 절에서 토큰 만료에 관한 코드를 작성하겠다고 명시되어 있지만
10.5절에서는 토큰 만료에 관한 코드를 작성하지 않습니다.
따라서 직접 토큰 만료에 관한 코드를 기존 코드를 응용해서 만들어 보았습니다.
위의 코드가 10.4절에 request 코드입니다.
에러처리 부분에서 500 이하의 status (클라이언트 에러, 서버에 잘못된 요청을 보냄)을 받을 경우 에러를 돌려주고 끝나게 되어있습니다.
그렇기에 419 에러를 받더라도 에러처리를 하고 끝나게 됩니다.
이를 해결하기 위해서
위와 같이 419 에러를 받을 경우 다시 한번 토큰을 발급하게 해 주었습니다.(기존 토큰 발급 코드와 동일하게 작용)
이렇게 해도 의도한 대로 잘 돌아가지만 중복된 코드가 사용되어 이를 밖으로 빼주는 작업을 해볼까 하다
zerocho님의 깃허브에 들어가 보았더니 더욱 좋은 방법이 제시되어 있었습니다.
419 에러를 만날 경우 req.session.jwt를 지우고 재귀적으로 request() 함수를 호출하도록 합니다.
훨씬 코드가 깔끔하고 보기 좋은 것 같습니다.
역시... 전문가는 다르다.
'IT 도서 > Node.js 교과서' 카테고리의 다른 글
[Chapter 9.5] 스스로 해보기 (1) | 2020.03.20 |
---|---|
[Chapter 9] xxx.find is not a function 오류 (0) | 2020.03.13 |
[Chapter9.2] 삽질_Cannot read property 'hasMany' of undefined 오류 (0) | 2020.03.12 |
node.js교과서 [Chapter7.6] A boolean value was passed to options.operatorsAliases.오류 (0) | 2020.03.07 |