From 3b03e34d2753b8e7ba5eda4f7d4beb02d697f0f0 Mon Sep 17 00:00:00 2001 From: amintasvrp Date: Mon, 20 May 2019 23:08:32 -0300 Subject: [PATCH 1/6] =?UTF-8?q?Adicionando=20tempo=20de=20expira=C3=A7?= =?UTF-8?q?=C3=A3o=20do=20token=20e=20melhor=20tratamento=20dele?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- middlewares/auth.js | 16 ++++++++++++++-- modules/tokenGenerator.js | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/middlewares/auth.js b/middlewares/auth.js index 345b869..a45c305 100644 --- a/middlewares/auth.js +++ b/middlewares/auth.js @@ -2,13 +2,25 @@ const jwt = require('jsonwebtoken'); const config = require('config'); module.exports = (req, res, next) => { - const token = req.header('Authorization'); - if (!token) { + const authHeader = req.header('Authorization'); + if (!authHeader) { const err = new Error('Access denied. No token provided.'); err.status = 401; return next(err); } + const parts = authHeader.split(' '); + + if (!parts.length === 2) { + return res.status(401).send({ error: 'Token error' }); + } + + const [scheme, token] = parts; + + if (!/^Bearer$/i.test(scheme)) { + return res.status(401).send({ error: 'Token Malformatted' }); + } + try { const decoded = jwt.verify(token, config.get('jwtPrivateKey')); req.user = decoded; diff --git a/modules/tokenGenerator.js b/modules/tokenGenerator.js index 61f87fa..9e7a7b2 100644 --- a/modules/tokenGenerator.js +++ b/modules/tokenGenerator.js @@ -2,7 +2,7 @@ const jwt = require('jsonwebtoken'); const config = require('config'); function sendToken (req) { - const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: '7 days' }); + const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); return token; } From 3d3becc5e3a8e2322847c77b6018397e4feee90a Mon Sep 17 00:00:00 2001 From: amintasvrp Date: Wed, 22 May 2019 18:28:33 -0300 Subject: [PATCH 2/6] =?UTF-8?q?Documentando=20tempo=20de=20expira=C3=A7?= =?UTF-8?q?=C3=A3o=20do=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/tokenGenerator.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/tokenGenerator.js b/modules/tokenGenerator.js index 9e7a7b2..f251688 100644 --- a/modules/tokenGenerator.js +++ b/modules/tokenGenerator.js @@ -2,7 +2,9 @@ const jwt = require('jsonwebtoken'); const config = require('config'); function sendToken (req) { - const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); + const token = jwt.sign({ username: req.body.username }, + config.get('jwtPrivateKey'), + { expiresIn: 604800 }); // Validade: 7 dias return token; } From bf4c29e32729538abe427e4b870bc9f22e5fc15d Mon Sep 17 00:00:00 2001 From: amintasvrp Date: Wed, 22 May 2019 18:39:53 -0300 Subject: [PATCH 3/6] =?UTF-8?q?Reestruturando=20linha=20de=20defini=C3=A7?= =?UTF-8?q?=C3=A3o=20do=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/tokenGenerator.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/tokenGenerator.js b/modules/tokenGenerator.js index f251688..87f09a3 100644 --- a/modules/tokenGenerator.js +++ b/modules/tokenGenerator.js @@ -2,9 +2,7 @@ const jwt = require('jsonwebtoken'); const config = require('config'); function sendToken (req) { - const token = jwt.sign({ username: req.body.username }, - config.get('jwtPrivateKey'), - { expiresIn: 604800 }); // Validade: 7 dias + const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); // Validade: 7 dias return token; } From 508b892e5b053e9e1a98eed40a59287b1da6b98a Mon Sep 17 00:00:00 2001 From: amintasvrp Date: Wed, 22 May 2019 18:54:49 -0300 Subject: [PATCH 4/6] Refatorando para passar no Travis CI --- modules/tokenGenerator.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/tokenGenerator.js b/modules/tokenGenerator.js index 87f09a3..8c326e8 100644 --- a/modules/tokenGenerator.js +++ b/modules/tokenGenerator.js @@ -2,7 +2,8 @@ const jwt = require('jsonwebtoken'); const config = require('config'); function sendToken (req) { - const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); // Validade: 7 dias + // Validade do Token: 7 dias + const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); return token; } From a07e30f03807f0fb1e69311d016fac9a7f484747 Mon Sep 17 00:00:00 2001 From: Amintas Victor Date: Wed, 22 May 2019 19:21:01 -0300 Subject: [PATCH 5/6] =?UTF-8?q?Atualizar=20documenta=C3=A7=C3=A3o=20da=20v?= =?UTF-8?q?alidade=20do=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: David Ferreira Quaresma --- modules/tokenGenerator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tokenGenerator.js b/modules/tokenGenerator.js index 8c326e8..df375ce 100644 --- a/modules/tokenGenerator.js +++ b/modules/tokenGenerator.js @@ -3,7 +3,7 @@ const config = require('config'); function sendToken (req) { // Validade do Token: 7 dias - const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); + const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); // 604800 = seconds * minutes * hours * days = 60 * 60 * 24 * 7 return token; } From db5e672bcc700a77dd42864cba4264e44e7fac6b Mon Sep 17 00:00:00 2001 From: Amintas Victor Date: Wed, 22 May 2019 19:25:14 -0300 Subject: [PATCH 6/6] =?UTF-8?q?Alterando=20coment=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Está havendo um problema de compilação pelo Travis CI. O iarl-nodejs já foi testado em ubuntu 18.04 --- modules/tokenGenerator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tokenGenerator.js b/modules/tokenGenerator.js index df375ce..56076da 100644 --- a/modules/tokenGenerator.js +++ b/modules/tokenGenerator.js @@ -3,7 +3,7 @@ const config = require('config'); function sendToken (req) { // Validade do Token: 7 dias - const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); // 604800 = seconds * minutes * hours * days = 60 * 60 * 24 * 7 + const token = jwt.sign({ username: req.body.username }, config.get('jwtPrivateKey'), { expiresIn: 604800 }); // 7 dias em segundos return token; }