7 글 보임 - 1 에서 7 까지 (총 7 중에서)
-
글쓴이글
-
2024년 1월 9일 03:01 #109475
김도균참가자안녕하세요 다름이 아니고 제가
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login</title> <link href="/bar.css" rel="stylesheet"> <link rel="stylesheet" href="./fontawesome/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer"/> </head> <body> <div> <ul class="top-bar"> <li class="top-bar-square" onclick="location.href='/'"> <H1>NJ2</H1>
<div class="login">
<form action="/login" method="post" name="login"> <div class="login-box"> <p>ID : </p> <input type="text" placeholder="아이디를 입력해주세요" name="username" value="yrjo"> </div> <div class="login-box"> <p>PW : </p> <input type="password" placeholder="비밀 번호를 입력해주세요" style="margin-left: 9px" name="password" value="011022"> </div> <div class="login-box login-box-button"> <button form="login">로그인</button> </div> </form> <form action="/membership" method="get" name="membershipForm"> <div class="login-box login-box-button"> <button onclick="location.href='/membership'" form="membershipForm">회원 가입</button> </div> </form>
</div>
</div>
</body> </html> 으로 /login으로 post요청을 했고
app.post('/login', (req, res, next) => { debug('Debug message here'); console.log('test') passport.authenticate('local', { failWithError: true }, async (err, user, info) => { console.log('test authenticate'); if (err) { return res.status(500).json(err); } if (!user) { return res.status(401).send('Unauthorized'); }
req.login(user, (err) => { if (err) { return res.status(500).json(err); } setTimeout(() => { console.log('login Successful') res.redirect('/') }, 0); }); })(req, res, next); }); 이런 식으로 post요청을 처리하도록 작성을 했습니다 그런데 접속을 해보니까 아예 안되더라구여 그래서 위와 같이 console.log를 활용하여 어디가 안되는지 찾아봤는데 로그 자체가 찍히지를 않습니다 일단 저는 처음에는 비동기화 (process.nextTick)쪽에서 문제가 있겠거니 하고 해당 부분을 주석처리 하고 이후에
passport.use(new LocalStrategy({ usernameField: 'username', passwordField: 'password' },async (typingId, typingPw, cb) => {
let result = await db.collection('member').findOne({ username : typingId}) if (!result) { return cb(null, false, { message: '아이디 DB에 없음' }) } if (await bcrypt.compare(typingPw, result.password)) { return cb(null, result) } else { return cb(null, false, { message: '비번불일치' }); } })) 이쪽 코드도 좀 손 보면서 제 선에서 찾을 수 있는 선에서 다 해봤는데 이게 로그가 안찍히다 보니까 원인을 잘 모르겠더라구요 그래서 질문차 문의드립니다 감사합니다 login.ejs
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login</title> <link href="/bar.css" rel="stylesheet"> <link rel="stylesheet" href="./fontawesome/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer"/> </head> <body> <div> <ul class="top-bar"> <li class="top-bar-square" onclick="location.href='/'"> <H1>NJ2</H1>
<div class="login">
<form action="/login" method="post" name="login"> <div class="login-box"> <p>ID : </p> <input type="text" placeholder="아이디를 입력해주세요" name="username" value="yrjo"> </div> <div class="login-box"> <p>PW : </p> <input type="password" placeholder="비밀 번호를 입력해주세요" style="margin-left: 9px" name="password" value="011022"> </div> <div class="login-box login-box-button"> <button form="login">로그인</button> </div> </form> <form action="/membership" method="get" name="membershipForm"> <div class="login-box login-box-button"> <button onclick="location.href='/membership'" form="membershipForm">회원 가입</button> </div> </form>
</div>
</div>
</body> </html>
2024년 1월 10일 03:10 #109624
김도균참가자선생님 바쁘신 와중에도 귀중한 답변 감사합니다 우선 <button type="submit" form="login">로그인</button>을 추가하여 실행을 하였지만 여전히 아무것도 나오지 않는 상태 확인했습니다 혹시 이게 server.js 문제일지 확인 차 재문의드립니다
-
글쓴이글
7 글 보임 - 1 에서 7 까지 (총 7 중에서)
- 답변은 로그인 후 가능합니다.