7 글 보임 - 1 에서 7 까지 (총 7 중에서)
-
글쓴이글
-
2023년 3월 18일 18:27 #72762
강현우참가자const express = require("express"); const app = express(); const PORT = 8080;
// 로그인 및 DB const MongoClient = require("mongodb").MongoClient; const URL = "보안"; const passport = require("passport"); const LocalStrategy = require("passport-local").Strategy; const session = require("express-session"); let db;
app.use(session({ secret: "비밀코드", resave: true, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session());
// static & views 설정 app.set("view engine", "ejs"); app.set("/views", "views"); app.use("/static", express.static(__dirname + "/static"));
MongoClient.connect(URL, { useUnifiedTopology: true }, (error, client) => { if (error) return console.log("error"); db = client.db("CODINGON"); console.log("접속");
// 나중에 라우팅될 코드 get 요청 이용해서 작성 app.get("/", (req, res) => { res.render("index"); });
//로그인 app.get("/login", (req, res) => { res.render("login"); });
app.post( "/login", passport.authenticate("local", { failureRedirect: "/fail", }), function (req, res) { res.send("로그인성공"); } );
app.listen(PORT, () => { console.log("listen"); });
passport.use( new LocalStrategy( { usernameField: "id", passwordField: "pw", session: true, passReqToCallback: false, }, function (input_id, input_pw, done) { console.log(input_id, input_pw); db.collection("User_Info").findOne({ id: input_id }, function (err, res) { if (err) return done(err); if (!res) return done(null, false, { message: "존재하지않는 아이디요" }); if (input_pw == res.pw) { return done(null, res); } else { return done(null, false, { message: "비번틀렸어요" }); } }); } ) ); passport.serializeUser(function (user, done) { done(null, user.email); }); passport.deserializeUser(function (id, done) { done(null, {}); }); }); 로그인 버튼을 누르면 Cannot GET /fail라고만 계속 나옵니다 ㅠ
2023년 3월 18일 23:10 #72789
강현우참가자passport.use( new LocalStrategy( { usernameField: "id", passwordField: "pw", session: true, passReqToCallback: false, }, function (input_id, input_pw, done) { console.log(input_id, input_pw); db.collection("User_Info").findOne({ id: input_id }, function (err, res) { if (err) return done(err); if (!res) return done(null, false, { message: "존재하지않는 아이디요" }); if (input_pw == res.pw) { return done(null, res); } else { return done(null, false, { message: "비번틀렸어요" }); } }); } ) ); passport.serializeUser(function (user, done) { done(null, user.email); }); passport.deserializeUser(function (id, done) { done(null, {}); }); }); 이 코들을 위로 올려서 넣어도 안되네요 ㅠ
2023년 3월 19일 09:36 #72815
codingapple키 마스터MongoClient.connect 콜백함수안에 app.get이랑 passport설정들 들어있는거같은데 밖으로 뺍시다
2023년 3월 19일 13:18 #72832
강현우참가자const express = require("express"); const app = express(); const PORT = 8080;
//DB const MongoClient = require("mongodb").MongoClient; const URL = "보안"; var db; MongoClient.connect(URL, { useUnifiedTopology: true }, (error, client) => { if (error) return console.log("error"); db = client.db("CODINGON"); console.log("접속"); });
//passport 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", (req, res) => { res.render("login"); });
app.post( "/login", passport.authenticate("local", { failureRedirect: "/fail" }), function (req, res) { res.redirect("/"); } );
passport.use( new LocalStrategy( { usernameField: "id", passwordField: "pw", session: true, passReqToCallback: false, }, function (input_id, input_pw, done) { console.log(input_id, input_pw); db.collection("User_Info").findOne({ id: input_id }, function (err, res) { if (err) return done(err); if (!res) return done(null, false, { messgae: "Not exist" }); if (input_pw == res.pw) { return done(null, res); } else { return done(null, false, { messgae: "wrong password" }); } }); } ) ); // id를 이용해 세션을 저장(로그인 성공시 발동) passport.serializeUser(function (user, done) { done(null, user.id); });
// 마이페이지 접속시 passport.deserializeUser(function (id, done) { done(null, {}); });
// static & views 설정 app.set("view engine", "ejs"); app.set("/views", "views"); app.use("/static", express.static(__dirname + "/static"));
// 나중에 라우팅될 코드 get 요청 이용해서 작성 app.get("/", (req, res) => { res.render("index"); });
// listen app.listen(PORT, () => { console.log("listen"); });
똑같이 input_id, input_pw 나오게 함수가 안돌고 Cannot GET /fail만 나옵니다
-
글쓴이글
7 글 보임 - 1 에서 7 까지 (총 7 중에서)
- 답변은 로그인 후 가능합니다.