4 글 보임 - 1 에서 4 까지 (총 4 중에서)
-
글쓴이글
-
2023년 10월 20일 16:39 #101567
김민주참가자router.use(session({ secret: 'process.env.DB_SECRET', resave : false, saveUninitialized : false })) router.use(passport.session()) router.use(passport.initialize())
passport.use( new LocalStrategy( { usernameField: "id", passwordField: "pw", session: true, passReqToCallback: false, }, function (입력한아이디, 입력한비번, done) { console.log("입력한 아이디 :" + 입력한아이디 + '\n'+"입력한 비번 :" + 입력한비번);
database.loginfindOne({id:입력한아이디}).then((result)=>{ if (!result) return done(null, false, { message: "존재하지않는 아이디입니다." }); if (입력한비번 == result.pw) { return done(null, result); } else { return done(null, false, { message: "다시 입력바랍니다." }); } }).catch((error)=>{ return done(error); }) } ) );
passport.serializeUser(function (user, done) { done(null, user.id); });
passport.deserializeUser(function (아이디, done) { database.loginfindOne({id:아이디}).then((result)=>{ done(null,{}); }); });
function 로그인했니(req, res, next) { console.log(req.body.id + "req.body"); console.log(req.user + " 로그인했니 req.user");
if (req.user) { // 브라우저에 세션이 있으면 넘어가 next(); } else { console.log("실패!"); res.send('<script>alert("로그인을 해주세요."); window.location.replace("/login");</script>'); } }
router.post( "/login", passport.authenticate("local", { failureRedirect: "/login" }),(req,res)=>{ res.redirect('/'); }); 오류 메시지 undefined 로그인했니 req.user TypeError: Cannot read properties of undefined (reading 'id') at C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:98:45 at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13) at 로그인했니 (C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:73:5) at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13) at Route.dispatch (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:114:3) at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5) at C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:284:15 at Function.process_params (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:346:12) 왜 로그인 할 때 req.user가 없다고 나올까요?
2023년 10월 23일 10:15 #101762
김민주참가자로그인을 하면 서버 브라우저에 세션이 있어야하는데 세션이 없는 상태라고 계속 로그인 하라고 뜹니다. 그래서 if (req.user || req.body) { // req.user 또는 req.body로 바꿈 next(); } else { console.log("실패!"); res.send('<script>alert("로그인을 해주세요."); window.location.replace("/login");</script>'); } } 로 하면 else로 가지 않고 오류가 뜹니다 이 이유가 무엇일까요? TypeError: Cannot read properties of undefined (reading 'id') at C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:98:45 at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13) at 로그인했니 (C:\Users\com_01\Desktop\butterfly\poca\routes\loginRoute.js:73:5) at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:144:13) at Route.dispatch (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\route.js:114:3) at Layer.handle [as handle_request] (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\layer.js:95:5) at C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:284:15 at Function.process_params (C:\Users\com_01\Desktop\butterfly\poca\node_modules\express\lib\router\index.js:346:12)
-
글쓴이글
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
- 답변은 로그인 후 가능합니다.