From 77022b8a56fdb1686030cf8b69586793efa7250f Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Wed, 6 Jan 2021 01:49:56 +0100 Subject: [PATCH] fix: redirect correctly in development (#40594) * fix: redirect correctly in development * fix: prevent // appearing in path * refactor: remove old comments * fix: remove trailing slash for redirection --- api-server/server/component-passport.js | 7 +++++-- api-server/server/utils/redirection.js | 4 ---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/api-server/server/component-passport.js b/api-server/server/component-passport.js index e0512d0c50..0ed09652cb 100644 --- a/api-server/server/component-passport.js +++ b/api-server/server/component-passport.js @@ -86,9 +86,12 @@ export const devSaveResponseAuthCookies = () => { export const devLoginRedirect = () => { return (req, res) => { // this mirrors the production approach, but without any validation - let { returnTo, origin, pathPrefix } = getRedirectParams(req); + let { returnTo, origin, pathPrefix } = getRedirectParams( + req, + params => params + ); returnTo += isRootPath(getRedirectBase(origin, pathPrefix), returnTo) - ? '/learn' + ? 'learn' : ''; return res.redirect(returnTo); }; diff --git a/api-server/server/utils/redirection.js b/api-server/server/utils/redirection.js index 031f61a5d9..7125c72acd 100644 --- a/api-server/server/utils/redirection.js +++ b/api-server/server/utils/redirection.js @@ -23,7 +23,6 @@ function getReturnTo(encryptedParams, secret, _homeLocation = homeLocation) { return normalizeParams(params, _homeLocation); } -// TODO: tests! function normalizeParams( { returnTo, origin, pathPrefix }, _homeLocation = homeLocation @@ -59,9 +58,6 @@ function getRedirectBase(origin, pathPrefix) { return `${origin}${redirectPathSegment}`; } -// TODO: this might be cleaner if we just use a URL for returnTo (call it -// returnURL for clarity) rather than pulling out origin and returning it -// separately function getRedirectParams(req, _normalizeParams = normalizeParams) { const url = req.header('Referer'); // since we do not always redirect the user back to the page they were on