Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion configs/app/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const app = Object.freeze({
isDev,
isReview,
isPw,
protocol: appSchema,
protocol: appSchema || 'https',
host: appHost,
port: appPort,
baseUrl,
Expand Down
12 changes: 8 additions & 4 deletions lib/cookies.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import Cookies from 'js-cookie';

import config from 'configs/app';
import { isBrowser } from 'toolkit/utils/isBrowser';

/**
Expand Down Expand Up @@ -40,6 +41,11 @@ export const PRIVATE_MODE_DISALLOWED: ReadonlyArray<NAMES> = [
NAMES.MIXPANEL_DEBUG,
];

export const getDefaultAttributes = () => ({
path: '/',
secure: config.app.protocol === 'https',
});

export function get(name?: NAMES | undefined | null, serverCookie?: string) {
if (!isBrowser()) {
return serverCookie ? getFromCookieString(serverCookie, name) : undefined;
Expand Down Expand Up @@ -72,13 +78,11 @@ export function set(name: NAMES, value: string, attributes: Cookies.CookieAttrib
return;
}

attributes.path = '/';

return Cookies.set(name, value, attributes);
return Cookies.set(name, value, { ...getDefaultAttributes(), ...attributes });
}

export function remove(name: NAMES, attributes: Cookies.CookieAttributes = {}) {
return Cookies.remove(name, attributes);
return Cookies.remove(name, { ...getDefaultAttributes(), ...attributes });
}

export function getFromCookieString(cookieString: string, name?: NAMES | undefined | null) {
Expand Down
2 changes: 1 addition & 1 deletion nextjs/getServerSideProps/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Promise<GetServerSidePropsResult<Props<Pathname>>> => {
let uuid = cookies.getFromCookieString(req.headers.cookie || '', cookies.NAMES.UUID);
if (!uuid && appProfile !== 'private') {
uuid = crypto.randomUUID();
res.setHeader('Set-Cookie', `${ cookies.NAMES.UUID }=${ uuid }`);
res.setHeader('Set-Cookie', `${ cookies.NAMES.UUID }=${ uuid }; Path=/; ${ config.app.protocol === 'https' ? 'Secure' : '' }`);
}

const isTrackingDisabled = process.env.DISABLE_TRACKING === 'true' || appProfile === 'private';
Expand Down
4 changes: 2 additions & 2 deletions nextjs/middlewares/addressFormat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ export default function addressFormatMiddleware(req: NextRequest, res: NextRespo
if (addressFormatCookie) {
const isValidCookie = config.UI.views.address.hashFormat.availableFormats.includes(addressFormatCookie.value as AddressFormat);
if (!isValidCookie) {
res.cookies.set(cookiesLib.NAMES.ADDRESS_FORMAT, defaultFormat, { path: '/' });
res.cookies.set(cookiesLib.NAMES.ADDRESS_FORMAT, defaultFormat, cookiesLib.getDefaultAttributes());
}
} else {
res.cookies.set(cookiesLib.NAMES.ADDRESS_FORMAT, defaultFormat, { path: '/' });
res.cookies.set(cookiesLib.NAMES.ADDRESS_FORMAT, defaultFormat, cookiesLib.getDefaultAttributes());
}
}
2 changes: 1 addition & 1 deletion nextjs/middlewares/appProfile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export default function appProfileMiddleware(req: NextRequest, res: NextResponse

const profileValue = headerValue || queryValue;
if (profileValue === PRIVATE_PROFILE_VALUE) {
res.cookies.set(cookiesLib.NAMES.APP_PROFILE, PRIVATE_PROFILE_VALUE, { path: '/' });
res.cookies.set(cookiesLib.NAMES.APP_PROFILE, PRIVATE_PROFILE_VALUE, cookiesLib.getDefaultAttributes());
} else {
res.cookies.delete(cookiesLib.NAMES.APP_PROFILE);
}
Expand Down
4 changes: 2 additions & 2 deletions nextjs/middlewares/colorTheme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ export default function colorThemeMiddleware(req: NextRequest, res: NextResponse

if (!colorModeCookie) {
if (appConfig.UI.colorTheme.default) {
res.cookies.set(cookiesLib.NAMES.COLOR_MODE, appConfig.UI.colorTheme.default.colorMode, { path: '/' });
res.cookies.set(cookiesLib.NAMES.COLOR_THEME, appConfig.UI.colorTheme.default.id, { path: '/' });
res.cookies.set(cookiesLib.NAMES.COLOR_MODE, appConfig.UI.colorTheme.default.colorMode, cookiesLib.getDefaultAttributes());
res.cookies.set(cookiesLib.NAMES.COLOR_THEME, appConfig.UI.colorTheme.default.id, cookiesLib.getDefaultAttributes());
}
}
}
2 changes: 1 addition & 1 deletion nextjs/middlewares/poorReputationTokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export default function poorReputationTokensMiddleware(req: NextRequest, res: Ne
const showPoorReputationTokensCookie = req.cookies.get(cookiesLib.NAMES.SHOW_POOR_REPUTATION_TOKENS);

if (!showPoorReputationTokensCookie) {
res.cookies.set(cookiesLib.NAMES.SHOW_POOR_REPUTATION_TOKENS, 'false', { path: '/' });
res.cookies.set(cookiesLib.NAMES.SHOW_POOR_REPUTATION_TOKENS, 'false', cookiesLib.getDefaultAttributes());
}
}
}
2 changes: 1 addition & 1 deletion nextjs/middlewares/scamTokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export default function scamTokensMiddleware(req: NextRequest, res: NextResponse
const showScamTokensCookie = req.cookies.get(cookiesLib.NAMES.SHOW_SCAM_TOKENS);

if (!showScamTokensCookie) {
res.cookies.set(cookiesLib.NAMES.SHOW_SCAM_TOKENS, 'false', { path: '/' });
res.cookies.set(cookiesLib.NAMES.SHOW_SCAM_TOKENS, 'false', cookiesLib.getDefaultAttributes());
}
}
}
Loading