mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 18:05:11 +03:00
Sweeps the example code that creating-a-client.mdx and other auth docs pull via $CodeSample, so the rendered pages match the "use getClaims()" guidance. Also adds Database type stubs and parameterizes SupabaseClient<Database> across SvelteKit and Hono examples. Fixes #40985 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **Documentation** * Updated OAuth server getting-started guide to use a claims-based consent/auth gate and preserve the authorization identifier on redirect. * Added the `auth_methods` partial across framework sections in the server-side “creating a client” guide. * **Refactor** * Updated authentication examples for Hono, Next.js, and SvelteKit to rely on JWT claims for logged-in checks and protected routes. * Streamlined example auth state and UI rendering to use claims-derived information. * **Type Updates** * Improved TypeScript typing for Supabase clients and app auth data across examples, including generated database type stubs. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_PUBLISHABLE_KEY } from '$env/static/public'
|
|
import { createServerClient } from '@supabase/ssr'
|
|
import type { Handle } from '@sveltejs/kit'
|
|
|
|
export const handle: Handle = async ({ event, resolve }) => {
|
|
event.locals.supabase = createServerClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_PUBLISHABLE_KEY, {
|
|
cookies: {
|
|
getAll() {
|
|
return event.cookies.getAll()
|
|
},
|
|
setAll(cookiesToSet, headers) {
|
|
/**
|
|
* Note: You have to add the `path` variable to the
|
|
* set and remove method due to sveltekit's cookie API
|
|
* requiring this to be set, setting the path to `/`
|
|
* will replicate previous/standard behavior (https://kit.svelte.dev/docs/types#public-types-cookies)
|
|
*/
|
|
cookiesToSet.forEach(({ name, value, options }) =>
|
|
event.cookies.set(name, value, { ...options, path: '/' })
|
|
)
|
|
if (Object.keys(headers).length > 0) {
|
|
event.setHeaders(headers)
|
|
}
|
|
},
|
|
},
|
|
})
|
|
|
|
return resolve(event, {
|
|
filterSerializedResponseHeaders(name) {
|
|
return name === 'content-range' || name === 'x-supabase-api-version'
|
|
},
|
|
})
|
|
}
|