mirror of https://github.com/buster-so/buster.git
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { CookieOptions, createServerClient } from '@supabase/ssr';
|
|
import { cookies } from 'next/headers';
|
|
|
|
export const COOKIE_OPTIONS: CookieOptions = {
|
|
path: '/',
|
|
secure: process.env.NODE_ENV === 'production', // Only use secure in production
|
|
sameSite: 'lax', // Type assertion to fix the error
|
|
httpOnly: true, // Make cookies HttpOnly
|
|
maxAge: 60 * 60 * 24 * 7 // 1 week
|
|
};
|
|
|
|
export const createClient = async () => {
|
|
const cookieStore = await cookies();
|
|
|
|
return createServerClient(
|
|
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
|
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
|
|
{
|
|
cookies: {
|
|
getAll() {
|
|
return cookieStore.getAll();
|
|
},
|
|
setAll(cookiesToSet) {
|
|
try {
|
|
cookiesToSet.forEach(({ name, value, options }) =>
|
|
cookieStore.set(name, value, { ...options, ...COOKIE_OPTIONS })
|
|
);
|
|
} catch {
|
|
// The `setAll` method was called from a Server Component.
|
|
// This can be ignored if you have middleware refreshing
|
|
// user sessions.
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
};
|