재밌고 어려운 IT를 이해해보자~!
Authentication 본문
권한이 있는 사람만 특정 행동을 할 수 있도록 관리하기 위해 Authentication 기능을 활용한다.
token이 동일한지를 매번 판단해주는 기능
user.js
userSchema.statics.findByToken = function (token, cb) {
var user = this;
//토큰을 decode 한다.
jwt.verify(token, 'secretToken', function (err, decoded) {
//유저 아이디를 이용해서 유저를 찾은 다음
//클라이언트에서 가져온 token과 DB에 보관된 토큰이 일치하는지 확인
user.findOne({ "_id": decoded, "token": token }, function (err, user) {
if (err) return cb(err);
cb(null, user)
})
})
}
index.js
app.get('/api/users/auth', auth, (req, res) => {
//여기 까지 미들웨어를 통과해 왔다는 얘기는 Authentication 이 True 라는 말.
res.status(200).json({
_id: req.user._id,
isAdmin: req.user.role === 0 ? false : true,
isAuth: true,
email: req.user.email,
name: req.user.name,
lastname: req.user.lastname,
role: req.user.role,
image: req.user.image
})
})
'React, Node Js' 카테고리의 다른 글
React.Js (0) | 2024.05.08 |
---|---|
logout 기능 (0) | 2024.05.07 |
로그인 기능 및 토큰생성 (0) | 2024.05.05 |
Bcrypt (0) | 2024.05.02 |
Node Mon, 비밀 설정 정보 관리 (0) | 2024.05.01 |
Comments