Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- it
- Node.js
- mongoose
- Joi
- Load Balancer
- 항해99
- TypeScript
- 타입스크립트
- 노마드코더
- ubuntu
- java
- 조건문
- reduce
- JWT
- https
- MYSQL
- 프로그래머스
- AWS
- JavaScript
- mongodb
- 생활코딩
- 메소드
- CORS
- elb
- Nodejs
- nginx
- wil
- nomadcoder
- 자바스크립트
- npm
Archives
- Today
- Total
V-logue
[Node.js] jwt malformed 본문
기존에 만들었던 로그인 기능에서 jwt malformed에러가 계속해서 발생해서,
이를 수정하게 됐다.
기본적으로 jwt malformed에러는
token값이 유효하지 않거나, Null 혹은 이상한 값일 때 발생하는데,
내 코드를 살펴보면,
const { authorization } = req.headers;
console.log("헤더입니다: " , authorization)
if (!authorization && authorization === null && authorization === undefined){
res.status(401).json({ errorMessage: "토큰의 값이 유효하지 않습니다."})
return next();
}
if (authorization.split(" ").length !== 2) {
res.status(400).json({ errorMessage: "Token is not a Bearer" });
}
const [tokenType, tokenValue] = authorization.split(" ");
if (tokenType !== "Bearer") {
return res.status(401).json({ errorMessage: "로그인이 필요한 기능입니다." });
}
const { userId } = jwt.verify(tokenValue, process.env.JWT_SECRET_KEY);
이런식으로 되있는데, 에러는
if (!authorization && authorization === null && authorization === undefined){
res.status(401).json({ errorMessage: "토큰의 값이 유효하지 않습니다."})
return next();
}
바로 이 지점에서 발생한다.
사실 기존에 계속해서 사용해 왔던 거라, 에러가 이제와서 저렇게 발생하는 것도
새삼스럽다고 느끼던 중 토큰이 headers를 통해 들어온 값으로 사용하는거라서 헤더에 문제가
있을 것이라고 생각했다.
아니나 다를까 프론트쪽에서 네트워크를 살펴보니, 헤더에 token값이 담겨 있지 않아서
발생한 문제였다.
에초에 req.headers에 Bearer token이 존재하지 않았기 때문에 발생한 에러였다.
jwt.io를 통해 봐도 유효하다고 표시된걸 확인한 후 였기에 확신한 거였고, 혹시나 헤더에도
토큰이 담겨있다면 3개의 블록으로 이루어진 값으로
token이 생성됐는지 확인하는걸 추천한다.
'Error' 카테고리의 다른 글
[AWS] EC2 503 Service Temporarily Unavailable (0) | 2022.07.26 |
---|---|
[Nginx] Nginx 무한 404 Error가 발생하는 문제 (0) | 2022.07.20 |
[ubuntu] Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules' (0) | 2022.07.12 |
[Node.js] Joi [Error [ValidationError]: "" is not allowed] (0) | 2022.07.06 |
[Node.js] bcrypt로 암호화된 비밀번호를 검증하는 과정에서 무한로딩 이슈 (0) | 2022.07.05 |
Comments