๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Login & Register authentication with Node js] (3) ๋กœ๊ทธ์ธ & ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€ ์˜ˆ์˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(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
๋ฐ˜์‘ํ˜•
Comments