diff --git a/src/stores/auth.ts b/src/stores/auth.ts index 56e57a3..822b3ab 100644 --- a/src/stores/auth.ts +++ b/src/stores/auth.ts @@ -20,26 +20,30 @@ type AuthState = { const oldCookieTokenType = 'Bearer'; const cookieExpirySec = 7 * 24 * 60 * 60; // 7 days -const oldCookieOptions = { - domain: '.pretendo.network', +const oldCookieOptions = (url: string) => ({ + domain: `.${new URL(url).hostname}`, secure: false, httpOnly: false, maxAge: cookieExpirySec, + sameSite: 'lax', refresh: true, readonly: false -} satisfies CookieOptions & { readonly: false }; +} satisfies CookieOptions & { readonly: false }); // Not actually a store, but may as well be export function useAuthStore() { + const config = useRuntimeConfig().public; const authState = useCookie('pretendo::auth', { - sameSite: 'strict', - secure: useRuntimeConfig().public.cookieSecure, + sameSite: 'lax', + secure: config.cookieSecure, + maxAge: cookieExpirySec, refresh: true, default: () => null }); - const accessTokenCookie = useCookie('access_token', oldCookieOptions); - const refreshTokenCookie = useCookie('refresh_token', oldCookieOptions); - const tokenTypeCookie = useCookie('token_type', oldCookieOptions); + const oldOpts = oldCookieOptions(config.baseUrl); + const accessTokenCookie = useCookie('access_token', oldOpts); + const refreshTokenCookie = useCookie('refresh_token', oldOpts); + const tokenTypeCookie = useCookie('token_type', oldOpts); function getToken() { return authState.value?.accessToken ?? null;