πŸ‘©‍πŸ’» λ°±μ—”λ“œ(Back-End)/Node js

[Login & Register authentication with Node js] (3) 둜그인 & νšŒμ›κ°€μž… νŽ˜μ΄μ§€ 예쁘게 λ³€κ²½ν•˜κΈ°

μ§•μ§•μ•ŒνŒŒμΉ΄ 2023. 3. 15. 00:57
728x90
λ°˜μ‘ν˜•

<λ³Έ λΈ”λ‘œκ·ΈλŠ” Traversy Media 의 유튜브λ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-)>

=> Node.js With Passport Authentication | Full Project

=> authentication app with login, register and access control using Node.js, Express, Passport, Mongoose

 

 

λ”°λΌν•˜λ‹€κ°€ bootstrap μ•ˆ μ μš©λΌμ„œ μ €λΆ„μ˜ κΉƒν—ˆλΈŒ 참고함..

 

πŸ₯• 둜그인 & νšŒμ›κ°€μž… νŽ˜μ΄μ§€ μ˜ˆμ˜κ²Œ λ³€κ²½ν•˜κΈ° 

🐧 app.js
const express = require("express");
const expressLayouts = require("express-ejs-layouts");

const app = express();

// ejs 미듀웨어
app.use(expressLayouts);
// express 의 view 엔진을 ejs 둜 μ„ΈνŒ…
app.set("view engine", "ejs");
// img
app.use(express.static('public'));

// Routes
app.use("/", require("./routes/index"));
app.use("/users", require("./routes/user"));

const PORT = process.env.PORT || 8000;

app.listen(PORT, console.log(`πŸš€Server started on port http://localhost:${PORT}`));

 

🐧 views/layout.ejs

<!DOCTYPE html>
<html lang="en">

<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://use.fontawesome.com/releases/v5.6.3/css/all.css"
    integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
  <link rel="stylesheet" href="https://bootswatch.com/4/journal/bootstrap.min.css" />
  <title>Node.js 둜 둜그인 및 νšŒμ›κ°€μž…</title>
</head>

<body>
  <div class="container">
    <%- body %>
  </div>
  <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
    integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
    crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"
    integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut"
    crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"
    integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k"
    crossorigin="anonymous"></script>
</body>

</html>

 

🐧 views/welcome.ejs

<div class="row mt-5">
  <div class="col-md-6 m-auto">
    <div class="card card-body text-center">
      <!-- app.js μ—μ„œ express.static 미듀웨어 ν•¨μˆ˜μ— μ „λ‹¬ν•˜λ©΄ 파일의 직접적인 μ œκ³΅μ„ μ‹œμž‘ -->
      <center><img src="/images/alpaca.jpg" width="100px" height="100px"></center>
      <p style="margin-top: 16px;">둜그인 & νšŒμ›κ°€μž…</p>
      <a href="/users/register" class="btn btn-primary btn-block mb-2">Register</a>
      <a href="/users/login" class="btn btn-secondary btn-block">Login</a>
    </div>
  </div>
</div>
728x90
λ°˜μ‘ν˜•