From 303e52da3e877b98242458a05f44358bc516d14c Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Tue, 20 Sep 2022 17:38:22 +0300 Subject: [PATCH] tweaks --- lib/session.ts | 13 +++++++++++-- lib/utils/get-active-cookie.ts | 17 ----------------- pages/api/login.ts | 1 + 3 files changed, 12 insertions(+), 19 deletions(-) delete mode 100644 lib/utils/get-active-cookie.ts diff --git a/lib/session.ts b/lib/session.ts index 50f5210..8c95bdb 100644 --- a/lib/session.ts +++ b/lib/session.ts @@ -1,7 +1,10 @@ +import Cookies from 'cookies'; import { GetServerSidePropsContext, GetServerSidePropsResult } from 'next'; import { getUserInfo } from './api/remote'; +import { COOKIE_KEYS } from './constants'; import { CurrentUserDto } from './types/user-response.interface'; -import { getActiveCookie } from './utils/get-active-cookie'; + +const inProd = process.env.NODE_ENV === 'production'; function withUser( handler: ( @@ -10,7 +13,13 @@ function withUser( ) => Promise> ) { return async (ctx: GetServerSidePropsContext) => { - const accessToken = getActiveCookie(ctx, 'authorization'); + const cookies = new Cookies(ctx.req, ctx.res, { + secure: inProd, + keys: COOKIE_KEYS, + }); + + const accessToken = cookies.get('authorization', { signed: true }); + let user: CurrentUserDto | undefined; if (accessToken) { try { diff --git a/lib/utils/get-active-cookie.ts b/lib/utils/get-active-cookie.ts deleted file mode 100644 index 110ee1e..0000000 --- a/lib/utils/get-active-cookie.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { GetServerSidePropsContext } from 'next'; - -import { getCookie } from './get-cookie'; - -export const getActiveCookie = ( - ctx: GetServerSidePropsContext, - cookieName: string -): string | undefined => { - const setCookies = ctx.res.getHeader('set-cookie') as string[]; - const fallback = ctx.req.cookies[cookieName]; - const entry = setCookies?.find((item) => item.startsWith(cookieName)); - if (entry === 'undefined') { - return; - } - - return getCookie(cookieName, entry) || fallback; -}; diff --git a/pages/api/login.ts b/pages/api/login.ts index 8c0cfc0..d431951 100644 --- a/pages/api/login.ts +++ b/pages/api/login.ts @@ -23,6 +23,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) { client_id: CLIENT_ID, response_type: 'code', redirect_uri: REDIRECT_URL, + prompt: 'consent', scope: 'management', state, });