38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
const express = require('express');
|
|
const basicAuth = require('basic-auth');
|
|
const logger = require('../logger');
|
|
const router = express.Router();
|
|
|
|
router.post('/login', (req, res) => {
|
|
const user = basicAuth(req);
|
|
const username = process.env.AUTH_USERNAME;
|
|
const password = process.env.AUTH_PASSWORD;
|
|
|
|
if (user && user.name === username && user.pass === password) {
|
|
req.session.user = user.name;
|
|
res.status(200).send('Login successful');
|
|
logger.info(`User ${user.name} logged in`);
|
|
} else {
|
|
res.status(401).send('Authentication required');
|
|
}
|
|
});
|
|
|
|
router.post('/logout', (req, res) => {
|
|
req.session.destroy((err) => {
|
|
if (err) {
|
|
return res.status(500).send('Error logging out');
|
|
}
|
|
res.clearCookie('connect.sid');
|
|
res.status(200).send('Logout successful');
|
|
});
|
|
});
|
|
|
|
router.get('/check-session', (req, res) => {
|
|
if (req.session.user) {
|
|
res.json({ loggedIn: true });
|
|
} else {
|
|
res.json({ loggedIn: false });
|
|
}
|
|
});
|
|
|
|
module.exports = router; |