feature: authentuication
This commit is contained in:
@ -1,7 +1,35 @@
|
||||
const express = require('express');
|
||||
const { initSessionsData } = require('../controllers/adminController');
|
||||
const passport = require('passport')
|
||||
const LocalStrategy = require('passport-local');
|
||||
const { initSessionsData, createUser, authenticate } = require('../controllers/adminController');
|
||||
const router = express.Router();
|
||||
|
||||
passport.use(new LocalStrategy(async function verify(username, password, cb) {
|
||||
try {
|
||||
const user = await authenticate(username, password);
|
||||
delete user._id;
|
||||
|
||||
if (user) {
|
||||
return cb(null, user);
|
||||
}
|
||||
return cb(null, false, { message: 'Incorrect username or password.' });
|
||||
} catch (err) {
|
||||
return cb(null, false, { message: 'Incorrect username or password.' });
|
||||
}
|
||||
}));
|
||||
|
||||
passport.serializeUser(function(user, cb) {
|
||||
process.nextTick(function() {
|
||||
const { id, username, roles, firstname, lastname, vid } = user;
|
||||
cb(null, { id, username, roles, firstname, lastname, vid });
|
||||
});
|
||||
});
|
||||
|
||||
passport.deserializeUser(function(user, cb) {
|
||||
process.nextTick(function() {
|
||||
return cb(null, user);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
router.get('/init-sessions', async(req, res) => {
|
||||
@ -13,4 +41,31 @@ router.get('/init-sessions', async(req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/user/create', async(req, res) => {
|
||||
await createUser(req);
|
||||
res.status(201);
|
||||
});
|
||||
|
||||
router.post('/user/authenticate',
|
||||
passport.authenticate('local'),
|
||||
function(req, res) {
|
||||
console.log('req.user :>> ', req.isAuthenticated(), req.user);
|
||||
res.json(req.user);
|
||||
});
|
||||
|
||||
router.get('/user/alive',
|
||||
function(req, res) {
|
||||
console.log('req.user :>> ', req.isAuthenticated());
|
||||
res.status(200).json(req.user);
|
||||
});
|
||||
|
||||
router.get('/user/logout', function(req, res, next) {
|
||||
req.logout(function(err) {
|
||||
if (err) { return next(err); }
|
||||
req.session.destroy();
|
||||
res.status(200).send();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
@ -43,7 +43,6 @@ router.get('/sessions/all/now', async(req, res) => {
|
||||
});
|
||||
|
||||
router.get('/flightplans/latest', async(req, res) => {
|
||||
console.log('object :>> ', '/flightplans/latest');
|
||||
try {
|
||||
const data = await getLatestsFlightPlans();
|
||||
res.status(200).json(data);
|
||||
|
Reference in New Issue
Block a user