250x250
Notice
Recent Posts
Recent Comments
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- certbot
- mongodb
- RDS
- wil
- sequelize
- async
- clipBehavior
- AWS
- double quote
- JavaScript
- moment
- Node.js
- findByIdAndDelete
- TypeScript
- css
- mongoose
- flutter
- nginx
- single quote
- EC2
- https
- atlas
- await
- til
- Nodejs
- Find
- MYSQL
- TailwindCSS
- Express
- jsonwebtoken
Link
Archives
기억 휘발 방지소
[Node.js] jsonwebtoken 본문
728x90
반응형
📌 jsonwebtoken
jsonwebtoken은 json 웹 토큰을 편리하게 생성할 수 있는 패키지이다.
오늘(10월 12일)을 기준으로 700만건이 넘는 다운로드 수를 갖는 패키지이다.
📌 설치
아래 명령어로 설치할 수 있다.
npm i jsonwebtoken
📌 토큰 생성
토큰은 sign 메소드로 생성할 수 있다.
jwt.sign(payload, secretOrPrivateKey, [options, callback])
const jwt = require("jsonwebtoken");
const payload = {
id: user.id,
email: user.email,
username: user.username,
};
const secretKey = "secret";
const options = { expiresIn: "1h" };
const token = jwt.sign(payload, secretKey, options);
jwt.sign의 매개변수로 payload, secret key, option을 차례대로 넣어준다.
옵션에 expiresIn은 토큰의 만료시간이다.
📌 토큰의 유효성 확인
토큰은 verify 메소드로 유효성을 확인할 수 있다.
jwt.verify(token, secretKey, [options, callback])
jwt 유효성 검증을 미들웨어로 만들어서 jwt 인증이 필요한 API에 미들웨어로 등록
// auth.js
const jwt = require("jsonwebtoken");
exports.verifyToken = async (req, res, next) => {
try {
const [authType, authToken] = req.headers.authorization.split(" ");
req.decoded = jwt.verify(authToken, "secretKey");
return next();
} catch (error) {
if (error.name === "TokenExpiredError") {
return res.status(419).json({ code: 419, message: "토큰 만료" });
}
return res.status(401).json({ code: 401, message: "유효하지 않은 토큰" });
}
};
728x90
반응형
'Web > Node.js' 카테고리의 다른 글
[Node.js] Nodemailer로 이메일 전송하기 with Gmail (1) | 2021.10.19 |
---|---|
[Node.js] express-validator로 유효성 검증하기 (0) | 2021.10.16 |
[Node.js / Sequelize] created_at, updated_at 시간을 한국시간대로 표기하기 (0) | 2021.10.07 |
[Node.js] multer (0) | 2021.09.27 |
[Node.js] express-session (0) | 2021.09.23 |