재밌고 어려운 IT를 이해해보자~!

Authentication 본문

React, Node Js

Authentication

언제나즐거운IT 2024. 5. 6. 14:19

권한이 있는 사람만 특정 행동을 할 수 있도록 관리하기 위해 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