-
글쓴이글
-
2022년 4월 7일 18:46 #31341
망막참가자질문 내용: 로그인 후 마이페이지에서 사용자 아이디가 출력되지 않아요..
로그인 후 요청.user를 출력하면 잘 나오는데 시간이 조금 지나면 빈 값으로 변하는 것 같습니다.
[server.js] 코드
//로그인 관련 라이브러리
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const session = require('express-session');//app.use(미들웨어)
//미들웨어 : 요청-응답 중간에 뭔가 실행되는 코드
app.use(session({secret : '비밀코드', resave : true, saveUninitialized : false}));
app.use(passport.initialize());
app.use(passport.session());app.get('/login', function(요청, 응답){
응답.render('login.ejs')
});app.post('/login', passport.authenticate('local', { failureRedirect : '/fail'}), function(요청, 응답){
console.log(요청.user);
응답.redirect('/')});
app.get('/mypage', 로그인했니, function (요청, 응답) {
console.log(요청.user);
응답.render('mypage.ejs', { 사용자: 요청.user })
});
function 로그인했니(요청, 응답, next) {
if (요청.user) {
next()
}
else {
응답.send('로그인안하셨는데요?')
}
}//로그인 인증 : 아이디 비번 확인
passport.use(new LocalStrategy({
usernameField: 'id',
passwordField: 'pw',
session: true,
passReqToCallback: false,
}, function (입력한아이디, 입력한비번, done) {
//console.log(입력한아이디, 입력한비번);
db.collection('login').findOne({ id: 입력한아이디 }, function (에러, 결과) {
if (에러) return done(에러)
if (!결과) return done(null, false, { message: '존재하지않는 아이디요' })
if (입력한비번 == 결과.pw) {
return done(null, 결과)
} else {
return done(null, false, { message: '비번틀렸어요' })
}
})
}));passport.serializeUser(function (user, done) {
done(null, user.id)
});
passport.deserializeUser(function (아이디, done) {
done(null, {})
});[mypage.ejs] 코드
<div class="container mt-4">
<p> <%= 사용자.id %>의 마이페이지입니다.</p>
</div>[login.ejs] 코드
<div class="container mt-4">
<form action="/login" method="POST">
<div class="form-group">
<label>아이디</label>
<input type="text" class="form-control" name="id">
</div>
<div class="form-group">
<label>비밀번호</label>
<input type="text" class="form-control" name="pw">
</div>
<button type="submit" class="btn btn-danger">로그인</button>
</form>
</div>[로그인 후 콘솔 결과]
[nodemon] restarting due to changes...
[nodemon] startingnode server.js
listening on 8080
{
_id: new ObjectId("624d4db4226307aec24158bd"),
id: 'test',
pw: 'test'
}
{}보시면 위 처럼 {} 빈 값으로 변하는데..이게 뭐가 문제인지 이틀동안 찾아보다가 해결하지 못 하여 질문드리게되었습니다.ㅠㅠ
-
글쓴이글
- 답변은 로그인 후 가능합니다.