Acceso JWT implementado
This commit is contained in:
parent
92e4ccbb3c
commit
755c5c6fa8
@ -9,7 +9,7 @@ module.exports = {
|
||||
|
||||
session: {
|
||||
secret_token: process.env.SECRET_TOKEN || "B57J=7B`NQ$y98|~5;hc715bo09^5oz8NR+]n9r~215B91Nd9P%25_N6r!GHcOKp|18y5-73Dr5^@9k7n]5l<-41D1o",
|
||||
token_expires_in: '300'
|
||||
token_expires_in: '12h'
|
||||
},
|
||||
|
||||
server: {
|
||||
|
||||
@ -9,7 +9,7 @@ module.exports = {
|
||||
|
||||
session: {
|
||||
secret_token: process.env.SECRET_TOKEN || "B57J=7B`NQ$y98|~5;hc715bo09^5oz8NR+]n9r~215B91Nd9P%25_N6r!GHcOKp|18y5-73Dr5^@9k7n]5l<-41D1o",
|
||||
token_expires_in: '300'
|
||||
token_expires_in: '12h'
|
||||
},
|
||||
|
||||
server: {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
const _ = require('lodash');
|
||||
const passport = require('passport');
|
||||
const { Strategy: LocalStrategy } = require('passport-local');
|
||||
const { Strategy: JWTStrategy} = require('passport-jwt');
|
||||
const { Strategy: CustomStrategy } = require('passport-custom');
|
||||
|
||||
const models = require('./models');
|
||||
const securityHelper = require('../helpers/security.helper');
|
||||
@ -104,22 +104,15 @@ console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><');
|
||||
}
|
||||
}));
|
||||
|
||||
// JWT
|
||||
passport.use('jwt', new JWTStrategy(securityHelper.jwtOptions, async (jwtPayload, done) => {
|
||||
try {
|
||||
const user = await models.User.findOne({
|
||||
attributes: { exclude: [ 'password' ] },
|
||||
where: { id: jwtPayload.id },
|
||||
raw: true
|
||||
});
|
||||
|
||||
if (_.isNull(user)) {
|
||||
return done(null, false, { message: 'User not found' })
|
||||
} else {
|
||||
return done(null, user, { message: 'User found' });
|
||||
}
|
||||
} catch (error) {
|
||||
return done(error);
|
||||
// JWT
|
||||
passport.use('jwt', new CustomStrategy(async (req, done) => {
|
||||
const token = ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null);
|
||||
console.log(token);
|
||||
if (!token) {
|
||||
return done(null, false, { message: 'Unauthorized'});
|
||||
}
|
||||
|
||||
return done(null, securityHelper.verify(token));
|
||||
}));
|
||||
|
||||
|
||||
@ -8,7 +8,6 @@ const config = require('../config');
|
||||
const privateKEY = fs.readFileSync(path.join(__dirname, '..', 'private.key'), 'utf8');
|
||||
const publicKEY = fs.readFileSync(path.join(__dirname, '..', 'public.key'), 'utf8');
|
||||
|
||||
|
||||
const signOptions = {
|
||||
issuer: 'Fundación LQDVI',
|
||||
subject: 'info@loquedeverdadimporta.org',
|
||||
@ -92,7 +91,7 @@ const _decode = (token) => {
|
||||
|
||||
module.exports = {
|
||||
jwtOptions: {
|
||||
jwtFromRequest: (req) => ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null),
|
||||
jwtFromRequest: (req) => { console.log(req.headers); return ((req && req.headers && req.headers['x-access-token']) ? req.headers['x-access-token'] : null) },
|
||||
secretOrKey: publicKEY,
|
||||
...signOptions,
|
||||
},
|
||||
|
||||
@ -35,6 +35,7 @@ routes.get('/test_jwt', AccessValidator.isLoggedUser,
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
routes.post('/token',
|
||||
authController.regenerateToken,
|
||||
);
|
||||
@ -43,5 +44,10 @@ routes.post('/token/reject',
|
||||
authController.rejectToken,
|
||||
);
|
||||
|
||||
routes.post('/prueba', AccessValidator.isLoggedUser,
|
||||
function (req, res) {
|
||||
res.json({ success: 'You are authenticated with JWT!', user: req.user })
|
||||
}
|
||||
);
|
||||
|
||||
module.exports = routes;
|
||||
@ -44,7 +44,7 @@
|
||||
"node-fetch": "^2.3.0",
|
||||
"os": "^0.1.1",
|
||||
"passport": "^0.4.0",
|
||||
"passport-jwt": "^4.0.0",
|
||||
"passport-custom": "^1.0.5",
|
||||
"passport-local": "^1.0.0",
|
||||
"path": "^0.12.7",
|
||||
"pino": "^4.7.1",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user