From 122b31a7add3dbe052cc6075b86aef6cf0481eee Mon Sep 17 00:00:00 2001 From: david Date: Tue, 9 Jul 2019 12:55:45 +0200 Subject: [PATCH] =?UTF-8?q?M=C3=A1s=20cambios=20para=20refresh=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/auth/auth.controller.js | 18 ++++++++++++++++++ modules/auth/auth.routes.js | 5 +++++ modules/auth/auth.service.js | 9 +++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/modules/auth/auth.controller.js b/modules/auth/auth.controller.js index 8e4d488..dd404f5 100644 --- a/modules/auth/auth.controller.js +++ b/modules/auth/auth.controller.js @@ -98,9 +98,27 @@ async function regenerateToken(req, res, next) { } } +async function rejectToken(req, res, next) { + const refreshToken = req.body.refreshToken; + const user = await authService.extraMethods.findUserByRefreshToken(refreshToken); + + if (user && user.token === refreshToken ) { + try { + await authService.extraMethods.deleteRefreshToken(refreshToken); + return controllerHelper.handleResultResponse(result, null, req.params, res, httpStatus.OK); + } catch (error) { + controllerHelper.handleErrorResponse(MODULE_NAME, rejectToken.name, error, res); + } + } else { + return controllerHelper.handleResultResponse(null, null, req.params, res, httpStatus.NOT_FOUND); + } +} + + module.exports = { login, register, regenerateToken, + rejectToken, MODULE_NAME } \ No newline at end of file diff --git a/modules/auth/auth.routes.js b/modules/auth/auth.routes.js index 0fdad85..cacf83e 100644 --- a/modules/auth/auth.routes.js +++ b/modules/auth/auth.routes.js @@ -33,4 +33,9 @@ routes.post('/token', authController.regenerateToken, ); +routes.post('/token/reject', + authController.rejectToken, +); + + module.exports = routes; \ No newline at end of file diff --git a/modules/auth/auth.service.js b/modules/auth/auth.service.js index 909626c..4572f4f 100644 --- a/modules/auth/auth.service.js +++ b/modules/auth/auth.service.js @@ -32,9 +32,14 @@ const extraMethods = { { token: newRefreshToken }, { where: { id: userId }} ); + }, + + deleteRefreshToken: async (userId, refreshToken) => { + return await models.User.update( + { token: null }, + { where: { id: userId } } + ); } - - } module.exports = {