π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[Login & Register authentication with Node js] (6) νμκ°μ μ μ€λ₯κ° λλ©΄ message λμ°κΈ° λ³Έλ¬Έ
π©π» λ°±μλ(Back-End)/Node js
[Login & Register authentication with Node js] (6) νμκ°μ μ μ€λ₯κ° λλ©΄ message λμ°κΈ°
μ§μ§μνμΉ΄ 2023. 3. 16. 01:43728x90
λ°μν
<λ³Έ λΈλ‘κ·Έλ Traversy Media μ μ νλΈλ₯Ό μ°Έκ³ ν΄μ 곡λΆνλ©° μμ±νμμ΅λλ€ :-)>
=> Node.js With Passport Authentication | Full Project
=> authentication app with login, register and access control using Node.js, Express, Passport, Mongoose
π₯ DBμ μ μ₯ν User Schema & νμκ°μ μ κ·μΉ μμ§ν€λ©΄ message λμ°κΈ°

π§ models/User.js
User schema μμ±
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
}, { collection: 'Passport' });
const User = mongoose.model("User", UserSchema);
module.exports = User;
π§ routes/user.js
const express = require("express");
const router = express.Router();
const AppError = require("../misc/AppError");
// Login Page
router.get("/login", (req, res) => {
res.render("login");
});
// Register Page
router.get("/register", (req, res) => {
res.render("register");
});
// Register Handle
router.post('/register', (req, res) => {
const { name, email, password, password2 } = req.body;
let errors = [];
if (!name || !email || !password || !password2) {
errors.push({ msg: 'Please enter all fields' });
}
if (password != password2) {
errors.push({ msg: 'Passwords do not match' });
}
if (password.length < 6) {
errors.push({ msg: 'Password must be at least 6 characters' });
}
if (errors.length > 0) {
res.render('register', {
errors,
name,
email,
password,
password2
});
} else {
res.send("pass");
}
});
module.exports = router;
π§ partials/messages.ejs
<% if(typeof errors !="undefined" ) { %>
<% errors.forEach(function(error) { %>
<div class="alert alert-warning alert-dismissible fade show" role="alert">
<%= error.msg %>
<button type="button" class="close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<% }); %>
<% } %>
π§ views/register.ejs
includeλ‘ κ²½λ‘ λ°μ λ
<%-include("κ²½λ‘")%> μ΄λ κ² λ°λ
<div class="row mt-5">
<div class="col-md-6 m-auto">
<div class="card card-body">
<h1 class="text-center mb-3">
<i class="fas fa-user-plus"></i>Register</h1>
<%-include('./partials/messages.ejs') %>
<!-- POSTλ‘ λ°μμ -->
<form action="/users/register" method="POST">
<div class="form-group">
<label for="name">Name</label>
<input
type="name"
id="name"
name="name"
class="form-control"
placeholder="Enter Name"
value="<%= typeof name != 'undefined' ? name : '' %>" />
</div>
<div class="form-group">
<label for="email">Email</label>
<input
type="email"
id="email"
name="email"
class="form-control"
placeholder="Enter Email"
value="<%= typeof email != 'undefined' ? email : '' %>" />
</div>
<div class="form-group">
<label for="password">Password</label>
<input
type="password"
id="password"
name="password"
class="form-control"
placeholder="Create Password"
value="<%= typeof password != 'undefined' ? password : '' %>" />
</div>
<div class="form-group">
<label for="password2">Confirm Password</label>
<input
type="password"
id="password2"
name="password2"
class="form-control"
placeholder="Confirm Password"
value="<%= typeof password2 != 'undefined' ? password2 : '' %>" />
</div>
<button type="submit" class="btn btn-primary btn-block">
Register
</button>
</form>
<p class="lead mt-4">Have An Account? <a href="/users/login">Login</a></p>
</div>
</div>
</div>
728x90
λ°μν
'π©βπ» λ°±μλ(Back-End) > Node js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Comments