인프런 커뮤니티 질문&답변
제로초님! 혹시 JWT 사용시 세션 사용하여 인증하는 serialize를 사용하지 못하나요?
작성
·
490
답변 3
0
admin
질문자
네 답변 감사드립니다:) 마지막으로 질문 있는데, jwt에서 발행한 토큰을 클라이언트 어느 곳에 저장을 해서 서버와 통신을 진행 할텐데, 그 토큰 값만 알면 jwt를 통해서 로그인으로 간주 할 수 있는데 이것을 대비하거나 방어 할 방법이 있나요? refresh token, access token을 사용해도 결국은 클라이언트 어딘가에 저장되어 있는 토큰 값을 알면 서버와의 통신이 가능한 상태가 되는거 아닌가요?
0
admin
질문자
serialize가 passport.serializeUser를 뜻하는게 맞습니다. 답변 감사드립니다. 그럼 passport.serializeUser를 사용하지 않으면 middlewares.js에 있는 밑의 isLoggedIn과 isNotLoggedIn을 사용 하지 못하는 건가요?
exports.isLoggedIn = (req,res,next)=>{
//로그인 되어 있는지 아닌지 판별(isAuthenticated를 활용)
if (req.isAuthenticated()){
next()
}else{
res.status(401).send('로그인이 필요합니다.')
}
}
exports.isNotLoggedIn = (req,res,next)=>{
//로그인 되어 있는지 아닌지 판별(isAuthenticated를 활용)
if (!req.isAuthenticated()){
next()
}else{
res.status(401).send('로그인 하지 않은 사용자만 접근 가능합니다.')
}
}
0
제로초(조현영)
지식공유자
serialize가 뭔가요? passport.serializeUser 말씀하시는 건가요? jwt 토큰을 쓰면 일반적으로 세션을 쓰지 않아서 serialize도 안 씁니다.





jwt를 사용할 때는 req.headers.Authorization같은 곳에 토큰을 넣어서 씁니다. req.headers.Authorization에 토큰이 들어있는지, 그리고 유효한지 검사해서 유효하다면 로그인 상황이라고 판단하시면 됩니다.