Files
myeasycms-v2/apps/web/lib/server/require-user-in-server-component.ts
gbuomprisco ff18a294ad Refactor Supabase client usage
Replaced various Supabase client imports with standardized admin and server clients across multiple files. This change ensures consistent and appropriate usage of admin and non-admin Supabase clients in server actions and services.
2024-08-14 13:43:53 +02:00

26 lines
846 B
TypeScript

import 'server-only';
import { cache } from 'react';
import { redirect } from 'next/navigation';
import { requireUser } from '@kit/supabase/require-user';
import { getSupabaseServerClient } from '@kit/supabase/server-client';
/**
* @name requireUserInServerComponent
* @description Require the user to be authenticated in a server component.
* We reuse this function in multiple server components - it is cached so that the data is only fetched once per request.
* Use this instead of `requireUser` in server components, so you don't need to hit the database multiple times in a single request.
*/
export const requireUserInServerComponent = cache(async () => {
const client = getSupabaseServerClient();
const result = await requireUser(client);
if (result.error) {
redirect(result.redirectTo);
}
return result.data;
});