3 글 보임 - 1 에서 3 까지 (총 3 중에서)
-
글쓴이글
-
2022년 8월 6일 18:53 #41073
이한준참가자로그인은 되는데 마이페이지를 들어가려 하면 로그인이 안되어있다고 하네요 (다시로그인 해도 안됩니다..) 제가 어디를 잘못했는지를 못찾겠네요.. const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy; const session = require('express-session');
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(요청, 응답){ 응답.redirect('/main') console.log(요청.user) });
app.get('/mypage', logintrue, function(요청, 응답){ console.log(요청.user); 응답.render('mypage.ejs', { user : 요청.user }) });
function logintrue(요청, 응답, next){ if (요청.user){ next() } else { 응답.render('fail.ejs') } };
app.get('/fail', function(요청, 응답){ 응답.render('fail.ejs') });
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) { db.collection('iogin').findOne({ id : 아이디 }, function(에러, 결과){ done(null, 결과) }) }); ____________________________________________________________________________ mypage.ejs
<!doctype html> <html> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<link href="/public/main.css" rel="stylesheet">
<title>회원정보</title> </head> <body> <%- include('nav.html') %>
<div class="container mt-4"> <div class="card" style="width: 100%;">
<div class="card-body"> <h5 class="card-title text-center">회원정보</h5> <p class="card-text text-center">??</p> </div>
<ul class="list-group list-group-flush"> <li class="list-group-item">아이디: <%= user.id %> <li class="list-group-item ">비밀번호: <%= user.pw %>
<div class="card-body"> 수정하기 </div> </div> </div>
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script>
<!-- Option 2: Separate Popper and Bootstrap JS --> <!-- <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script> --> </body> </html> ________________________________________________________________________________________ login.ejs
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> <title>로그인</title> </head> <body> <h4 class="container mt-5">로그인</h4> <form class="px-4 py-3" action="/login" method="POST"> <div class="mb-3"> <label for="exampleDropdownFormEmail1" class="form-label">이메일</label> <input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="email@example.com" name="id"> </div> <div class="mb-3"> <label for="exampleDropdownFormPassword1" class="form-label">비밀번호</label> <input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password" name="pw"> </div> <div class="mb-3"> <div class="form-check"> <input type="checkbox" class="form-check-input" id="dropdownCheck"> <label class="form-check-label" for="dropdownCheck"> 기억하기 </label> </div> </div> <button type="submit" class="btn btn-primary">로그인</button> </form> <div class="dropdown-divider"></div>
<h4 class="container mt-5">회원가입 </h4> <form class="px-4 py-3" action="/register" method="POST"> <div class="mb-3"> <label for="exampleDropdownFormEmail1" class="form-label">아이디</label> <input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="email@example.com" name="id"> </div> <div class="mb-3"> <label for="exampleDropdownFormPassword1" class="form-label">비밀번호</label> <input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password" name="pw"> </div> <button type="submit" class="btn btn-primary">가입</button> </form> <div class="dropdown-divider"></div>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body> </html>
2022년 8월 6일 23:41 #41115
codingapple키 마스터passport.deserializeUser(function (아이디, done) { db.collection('iogin') iogin 오타인듯요
-
글쓴이글
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
- 답변은 로그인 후 가능합니다.