-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
로그아웃 실패 !?!?
20.10.29 23:47 작성 조회수 150
1
로그아웃하면 결과값이
{
"isAuth": false,
"error": true
}
이렇게 나옵니다... 다른분이 질문한 것과 같은 결과인데 오류를 못잡겠습니다..
일단 이곳에서 부터 유저의 값은 null값으로 나오네여,,, 핳,, 어디가 잘못된 것일까요
userSchema.statics.findByToken = function(token, cb) {
var user = this;
// user._id + '' = token
//토큰을 decode 한다.
jwt.verify(token, 'secretToken', function (err, decoded) {
//유저 아이디를 이용해서 유저를 찾은 다음에
//클라이언트에서 가져온 token과 DB에 보관된 토큰이 일치하는지 확인
user.findOne({ "_id": decoded, "token": token }, function (err, user) {
if (err) return cb(err);
console.log('user', user) //user 값이 null임 ㅜㅜ
cb(null, user)
})
})
}
답변을 작성해보세요.
1
dksdudgns312
2020.12.30
index.js에 res.cookie("x_auth", user.token)부분이 x_auth인지 x-auth인지 확인해세요
다른 질문글에도 똑같은 식으로 에러난걸 해결했길래
저도 확인해봤더니 x_auth가 x-auth라고 잘못써져있었어요.
x_auth가 맞아요
1
John Ahn
지식공유자2020.11.01
안녕하세요 ~
로그아웃관련된 부분 소스를
나열해볼게요 ~
app.get('/api/users/logout', auth, (req, res) => {
// console.log('req.user', req.user)
User.findOneAndUpdate({ _id: req.user._id },
{ token: "" }
, (err, user) => {
if (err) return res.json({ success: false, err });
return res.status(200).send({
success: true
})
})
})
let auth = (req, res, next) => {
//인증 처리를 하는곳
//클라이언트 쿠키에서 토큰을 가져온다.
let token = req.cookies.x_auth;
// 토큰을 복호화 한후 유저를 찾는다.
User.findByToken(token, (err, user) => {
if (err) throw err;
if (!user) return res.json({ isAuth: false, error: true })
// console.log('userh', user)
req.token = token;
req.user = user;
next();
})
}
userSchema.statics.findByToken = function(token, cb) {
var user = this;
// user._id + '' = token
//토큰을 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)
})
})
}
이 부분들인데 한번 오타있는지 체크해봐주세요 ~ !
답변 2