본문 바로가기
javascript/Node.js

[Express 모듈] 기본적인 로그인 구현

by 바나냥 2020. 8. 14.
<!DOCTYPE html>
<html>
  <head>
    <title>Login</title>
  </head>
  <body>
    <h1>Login</h1>
    <form method="post">
      <table>
        <tr>
          <td><label>Id</label></td>
          <td><input type="text" name="userId" /></td>
        </tr>
        <tr>
          <td><label>Password</label></td>
          <td><input type="text" name="userPw" /></td>
        </tr>
      </table>
      <input type="submit" />
    </form>
  </body>
</html>

 

body-parser

npm install body-parser

 

var express = require("express");
var cookieParser = require("cookie-parser");
var bodyParser = require("body-parser");
var fs = require("fs");

var app = express();

app.use(cookieParser());
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));

// parse application/json
app.use(bodyParser.json());

app.get("/", function (req, res) {
  if (req.cookies.auth) {
    res.send("<h1>Login Success</h1>");
  } else {
    res.redirect("/login");
  }
});

app.get("/login", function (req, res) {
  fs.readFile("login.html", function (error, data) {
    res.send(data.toString());
  });
});

app.post("/login", function (req, res) {
  const { userId, userPw } = req.body;

  if (userId == "dikang" && userPw === "1016") {
    res.cookie("auth", true);
    res.redirect("/");
  } else {
    res.redirect("/login");
  }
});

app.listen(3030);

 

form을 통해 쿠키를 전달할 때는 bodyParser.urlencoded({ extended: false }) 를 사용한다.

userId와 userPw 값이 일치하면 "auth": true를 cookie로 보내고 Login Success를 화면에 출력한다.

 

 

 

댓글