3 글 보임 - 1 에서 3 까지 (총 3 중에서)
-
글쓴이글
-
2023년 11월 14일 08:35 #103870
조동우참가자안녕하세요. 회원가입은 잘 됩니다. mongodb에도 헤쉬로 잘 저장 됩니다. 그런데 로그인 페이지에서 로그인을 하면
사이트에 연결할 수 없음 localhost에서 연결을 거부했습니다.
다음 방법을 시도해 보세요.
연결 확인 프록시 및 방화벽 확인 ERR_CONNECTION_REFUSED
라고 하면서 페이지가 안뜹니다. 터미널에 있는 에러코드는 아래와 같습니다.
C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\bcrypt.js:208 error = new Error('data and hash arguments required'); ^
Error: data and hash arguments required at Object.compare (C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\bcrypt.js:208:17) at C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\promises.js:29:12 at new Promise (<anonymous>) at module.exports.promise (C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\promises.js:20:12) at Object.compare (C:\Users\allof\Desktop\Learn-html-css\forum\node_modules\bcrypt\bcrypt.js:204:25) at Strategy._verify (C:\Users\allof\Desktop\Learn-html-css\forum\server.js:62:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
<h2><span style="color: #ff0000;">passport 관련 내용은 아래와 같습니다.</span></h2>
//회원가입 passport 시작// const session = require('express-session'); const passport = require('passport'); const LocalStrategy = require('passport-local');
app.use(passport.initialize()); app.use( session({ secret: 'whalsdn1721', resave: false, saveUninitialized: false, cookie: { maxAge: 60 * 60 * 1000 }, }) );
app.use(passport.session());
passport.use( new LocalStrategy(async (입력한아이디, 입력한비번, cb) => { let result = await db .collection('user') .findOne({ username: 입력한아이디 });
if (!result) { return cb(null, false, { message: '아이디 DB에 없음' }); } // await bcrypt.compare(입력한비번, result.password) <- 헤쉬된 비번과 입력된 비번 비교해서 True, false 출력해줌.
if ((await bcrypt.compare(입력한비번, result.password)) == true) { return cb(null, result); } else { return cb(null, false, { message: '비번불일치' }); } }) );
passport.serializeUser((user, done) => { process.nextTick(() => { done(null, { id: user._id, username: user.username }); }); });
passport.deserializeUser(async (user, done) => { let result = await db .collection('user') .findOne({ _id: new ObjectId(user.id) }); delete result.password; process.nextTick(() => { return done(null, result); }); }); //회원가입 passport 끝// <span style="color: #ff0000;">회원관련 내용은 아래와 같습니다.</span>
// 회원 관련 // // // //
app.get('/registe', (요청, 응답) => { 응답.render('signup.ejs'); });
app.post('/registe', async (요청, 응답) => { let passwordHash = await bcrypt.hash(요청.body.password, 10); await db.collection('user').insertOne({ username: 요청.body.username, pasword: passwordHash, }); 응답.redirect('/'); });
app.get('/login', (요청, 응답) => { 응답.render('login.ejs'); });
app.post('/login', async (요청, 응답, next) => { passport.authenticate('local', (error, user, info) => { if (error) return 응답.status(500).json(error); if (!user) return 응답.status(401).json(info.message); 요청.logIn(user, (err) => { if (err) return next(err); 응답.redirect('/'); }); })(요청, 응답, next); }); // // // // // // // 회원 관련 끝
<span style="color: #ff0000;">무엇이 문제 일까요???????</span> <span style="color: #ff0000;">부탁드립니다......</span>
-
글쓴이글
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
- 답변은 로그인 후 가능합니다.