Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit 44f90e85 authored by 65160132's avatar 65160132
Browse files

logout

parent a06e146c
Branches
No related tags found
No related merge requests found
const bcrypt = require('bcrypt'); const bcrypt = require('bcrypt');
const pool = require('../db'); // แยกไฟล์ connection ใน db.js const pool = require('../db');
module.exports = { module.exports = {
showLoginPage: (req, res) => { showLoginPage: (req, res) => {
...@@ -17,14 +17,13 @@ module.exports = { ...@@ -17,14 +17,13 @@ module.exports = {
const user = rows[0]; const user = rows[0];
const match = await bcrypt.compare(rpassword, user.password); const match = await bcrypt.compare(rpassword, user.password);
if (!match) { if (match) {
req.session.userId = user.id
res.redirect('/');
} else {
req.flash('message', 'Password incorrect'); req.flash('message', 'Password incorrect');
return res.redirect('/login'); return res.redirect('/login');
} }
// login success (สามารถสร้าง session ได้ที่นี่)
req.flash('message', 'Login successful');
res.redirect('/');
} catch (err) { } catch (err) {
console.error(err); console.error(err);
res.status(500).send('Server error'); res.status(500).send('Server error');
......
module.exports = (req, res) => {
req.session.destroy(() => {
res.redirect('/')
})
}
\ No newline at end of file
...@@ -3,6 +3,7 @@ const bodyParser = require('body-parser'); ...@@ -3,6 +3,7 @@ const bodyParser = require('body-parser');
const session = require('express-session'); const session = require('express-session');
const flash = require('connect-flash'); const flash = require('connect-flash');
global.loggedIn = null
const app = express(); const app = express();
app.use(express.static('public')); app.use(express.static('public'));
app.use(express.json()); app.use(express.json());
...@@ -10,21 +11,28 @@ app.use(express.urlencoded({ extended: true })); ...@@ -10,21 +11,28 @@ app.use(express.urlencoded({ extended: true }));
app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.urlencoded({ extended: true }));
app.use(session({ app.use(session({
secret: 'secretkey', secret: 'secretkey',
resave: false, resave: true,
saveUninitialized: true saveUninitialized: true
})); }));
app.use(flash()); app.use(flash());
app.set('view engine', 'ejs'); app.set('view engine', 'ejs');
app.use('*', (req, res, next) => {
loggedIn = req.session.userId
next()
});
const indexController = require('./controllers/indexController'); const indexController = require('./controllers/indexController');
const loginController = require('./controllers/loginController'); const loginController = require('./controllers/loginController');
const registerController = require('./controllers/registerController'); const registerController = require('./controllers/registerController');
const logoutController = require('./controllers/logoutController');
app.get('/', indexController); app.get('/', indexController);
app.get('/login', loginController.showLoginPage); app.get('/login', loginController.showLoginPage);
app.post('/user/login', loginController.loginUser); app.post('/user/login', loginController.loginUser);
app.get('/register', registerController.showRegisterPage); app.get('/register', registerController.showRegisterPage);
app.post('/user/register', registerController.registerUser); app.post('/user/register', registerController.registerUser);
app.post('/user/register', registerController.registerUser);
app.get('/logout', logoutController);
const port = process.env.PORT || 3000; const port = process.env.PORT || 3000;
app.listen(port, () => { app.listen(port, () => {
......
...@@ -50,12 +50,19 @@ ...@@ -50,12 +50,19 @@
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="gallery.html">Gallery</a> <a class="nav-link" href="gallery.html">Gallery</a>
</li> </li>
<% if (loggedIn) { %>
<li class="nav-item">
<a class="nav-link text-danger" href="/logout">Logout</a>
</li>
<% } %>
<% if (!loggedIn) { %>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="/login">Login</a> <a class="nav-link" href="/login">Login</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="/register">Register</a> <a class="nav-link" href="/register">Register</a>
</li> </li>
<% } %>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="#"><i class="fa fa-search" aria-hidden="true"></i></a> <a class="nav-link" href="#"><i class="fa fa-search" aria-hidden="true"></i></a>
</li> </li>
......
...@@ -130,6 +130,12 @@ ...@@ -130,6 +130,12 @@
<main class="form-signin w-100 m-auto"> <main class="form-signin w-100 m-auto">
<form action="/user/login" method="POST"> <form action="/user/login" method="POST">
<% if (message && message.length > 0) { %>
<div class="alert alert-danger" role="alert">
<%= message %>
</div>
<% } %>
<h1 class="h3 mb-3 fw-normal">Sign in</h1> <h1 class="h3 mb-3 fw-normal">Sign in</h1>
<div class="form-floating"> <div class="form-floating">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment