333332
This commit is contained in:
@@ -16,6 +16,13 @@ app.use(cors());
|
|||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, 'public')));
|
||||||
|
|
||||||
|
function requireAuth(req, res, next) {
|
||||||
|
if (!req.session || !req.session.authenticated) {
|
||||||
|
return res.status(401).json({ error: 'Unauthorized' });
|
||||||
|
}
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
|
||||||
// Session configuration
|
// Session configuration
|
||||||
app.use(session({
|
app.use(session({
|
||||||
secret: process.env.SESSION_SECRET || 'default-secret-change-this',
|
secret: process.env.SESSION_SECRET || 'default-secret-change-this',
|
||||||
|
|||||||
22
src/middleware/auth.js
Normal file
22
src/middleware/auth.js
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// Authentication middleware
|
||||||
|
function requireAuth(req, res, next) {
|
||||||
|
if (!req.session || !req.session.authenticated) {
|
||||||
|
return res.status(401).json({ error: 'Unauthorized' });
|
||||||
|
}
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Role-based permissions
|
||||||
|
function getRolePermissions(role) {
|
||||||
|
const permissions = {
|
||||||
|
admin: ['read', 'write', 'delete', 'admin'],
|
||||||
|
editor: ['read', 'write'],
|
||||||
|
viewer: ['read']
|
||||||
|
};
|
||||||
|
return permissions[role] || permissions.viewer;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
requireAuth,
|
||||||
|
getRolePermissions
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user