안녕하세요 항상 도움이 많이되고있습니당
오늘은 관리자 페이지에 대해 질문드립니다
유저가 로그인해야 접속가능한 마이페이지는 구현이 된 상태인데
관리자 페이지도 만들고싶어서 질문드립니다.
예를들어 admin.ejs페이지는 user-login이라는 콜렉션에서 _id가 1인 계정만 접속할수있게 해주세요
코드를 짜려면 어떻게 해야되는지 질문드립니다 ㅠㅠ
//로그인 페이지
app.get("/login", function (req, res) {
res.render("login.ejs");
});
app.post(
"/login",
passport.authenticate("local", { failureRedirect: "/fail" }),
function (req, res) {
res.redirect("/index-login");
}
);
app.get("/fail", function (req, res) {
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
res.write("<script>alert('id/pw가 일치하지 않습니다. ')</script>");
res.write('<script>window.location="login"</script>');
});
app.get("/index-login", function (req, res) {
res.render("index-login.ejs");
});
//로그인에 필요함 (로컬스트러지 인증방식)
passport.use(
new LocalStrategy(
{
usernameField: "id",
passwordField: "pw",
session: true,
passReqToCallback: false,
},
function (입력한아이디, 입력한비번, done) {
//console.log(입력한아이디, 입력한비번);
db.collection("user-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("user-login").findOne({ id: 아이디 }, function (에러, 결과) {
done(null, 결과);
});
});
function 로그인했니(req, res, next) {
if (req.user) {
next();
} else {
res.redirect("/login");
}
}