feat: Use new (tested) accessToken utils to set and remove cookies

This commit is contained in:
Bouncey
2019-02-20 23:07:12 +00:00
committed by mrugesh mohapatra
parent 3e8bac4590
commit cf1def239d
2 changed files with 5 additions and 26 deletions

View File

@ -6,7 +6,6 @@ import { isEmail } from 'validator';
import { check } from 'express-validator/check'; import { check } from 'express-validator/check';
import { homeLocation } from '../../../config/env'; import { homeLocation } from '../../../config/env';
import { createCookieConfig } from '../utils/cookieConfig';
import { import {
createPassportCallbackAuthenticator, createPassportCallbackAuthenticator,
saveResponseAuthCookies, saveResponseAuthCookies,
@ -18,6 +17,7 @@ import {
createValidatorErrorHandler createValidatorErrorHandler
} from '../utils/middleware'; } from '../utils/middleware';
import { wrapHandledError } from '../utils/create-handled-error.js'; import { wrapHandledError } from '../utils/create-handled-error.js';
import { removeCookies } from '../utils/getSetAccessToken';
const isSignUpDisabled = !!process.env.DISABLE_SIGNUP; const isSignUpDisabled = !!process.env.DISABLE_SIGNUP;
if (isSignUpDisabled) { if (isSignUpDisabled) {
@ -68,11 +68,7 @@ module.exports = function enableAuthentication(app) {
redirectTo: homeLocation redirectTo: homeLocation
}); });
} }
const config = createCookieConfig(req); removeCookies(req, res);
res.clearCookie('jwt_access_token', config);
res.clearCookie('access_token', config);
res.clearCookie('userId', config);
res.clearCookie('_csrf', config);
res.redirect(homeLocation); res.redirect(homeLocation);
}); });
}); });

View File

@ -5,13 +5,11 @@ import {
PassportConfigurator PassportConfigurator
} from '@freecodecamp/loopback-component-passport'; } from '@freecodecamp/loopback-component-passport';
import url from 'url'; import url from 'url';
import jwt from 'jsonwebtoken';
import dedent from 'dedent'; import dedent from 'dedent';
import { homeLocation } from '../../config/env'; import { homeLocation } from '../../config/env';
import { jwtSecret } from '../../config/secrets';
import passportProviders from './passport-providers'; import passportProviders from './passport-providers';
import { createCookieConfig } from './utils/cookieConfig'; import { setAccessTokenToResponse } from './utils/getSetAccessToken';
const passportOptions = { const passportOptions = {
emailOptional: true, emailOptional: true,
@ -143,15 +141,7 @@ export const saveResponseAuthCookies = () => {
const { accessToken } = user; const { accessToken } = user;
const cookieConfig = { setAccessTokenToResponse({ accessToken }, req, res);
...createCookieConfig(req),
maxAge: 77760000000
};
const jwtAccess = jwt.sign({ accessToken }, jwtSecret);
res.cookie('jwt_access_token', jwtAccess, cookieConfig);
res.cookie('access_token', accessToken.id, cookieConfig);
res.cookie('userId', accessToken.userId, cookieConfig);
return next(); return next();
}; };
}; };
@ -221,14 +211,7 @@ we recommend using your email address: ${user.email} to sign in instead.
` `
); );
} }
const cookieConfig = { setAccessTokenToResponse({ accessToken }, req, res);
...createCookieConfig(req),
maxAge: accessToken.ttl
};
const jwtAccess = jwt.sign({ accessToken }, jwtSecret);
res.cookie('jwt_access_token', jwtAccess, cookieConfig);
res.cookie('access_token', accessToken.id, cookieConfig);
res.cookie('userId', accessToken.userId, cookieConfig);
req.login(user); req.login(user);
} }