반응형
🙋🏻♂️ 데이터 암호화 하기
더보기
어쩌다보니 node.js를...
/*
User.js
*/
// npm install jsonwebtoken --save
const jwt = require("jsonwebtoken");
//jwt 생성
userSchema.methods.generateToken = function (cb) {
let user = this;
let token = jwt.sign(user._id.toHexString(), "secrectToken");
user.token = token;
user.save(function (err, user) {
if (err) return cb(err);
cb(null, user);
});
};
이렇게 하면 jwt가 생성이고 user객체의 token에 삽입되고 객체 전체가 index.js로 반환된다.
🙋🏻♂️ jsonwebtoken 생성하기
/*
** 로그인 프로세스 **
1. DB 안에서 요청된 이메일 찾기
2. 이메일이 있다면 비밀번호 일치 여부 확인
3. 둘 다 수행하면 Token 생성 (<=== 토큰 생성은 이 곳)
*/
app.post("/login", (req, res) => {
// 1.
User.findOne({ email: req.body.email }, (err, user) => {
if (!user) {
return res.json({
loginSuccess: false,
message: "제공된 이메일에 해당하는 유저가 없습니다.",
});
}
//2.
user.comparePassword(req.body.password, (err, isMatch) => {
if (!isMatch) {
return res.json({
loginSuccess: false,
message: "비밀번호가 틀렸습니다.",
});
}
//3.
user.generateToken((err, user) => {
if (err) return res.status(400).send(err);
res
.cookie("x_auth", user.token)
.status(200)
.json({ loginSuccess: true, userId: user.user_id });
});
});
});
});
jwt는 쿠키, 로컬 스토리지 등에 저장할 수 있다고 한다. 어느 것이 가장 효율 적인 방법이라고 단정지을 수는 없지만 프로젝트의 특성을 파악하고 사용해야 될 것 같다. 일단은 쿠키로. jwt는 무엇일까? 그건 나중에 알아봐야지
//npm insatll cookie-parser --save
const cookieParser = require("cookie-parser");
쿠키에 저장하기 위해 설치해야한다.
반응형
'Frontend > React' 카테고리의 다른 글
MongooseServerSelectionError: Could not connect to any servers in your MongoDB Atlas clust current IP address is on your Atlas cluster's IP (0) | 2020.09.01 |
---|---|
React 시작하기 #3 (1) | 2020.08.24 |
React 시작하기 #1 (0) | 2020.08.20 |