Files
HKSingleParty/99_references/supabase-examples/realtime/nextjs-auth-presence/pages/profile.tsx
2025-05-28 09:55:51 +08:00

40 lines
947 B
TypeScript

import { createServerSupabaseClient, User } from '@supabase/auth-helpers-nextjs'
import { GetServerSidePropsContext } from 'next'
import Link from 'next/link'
export default function Profile({ user }: { user: User }) {
return (
<>
<p>
[<Link href="/">Home</Link>] | [<Link href="/protected-page">supabaseServerClient</Link>]
</p>
<div>Hello {user.email}</div>
<pre>{JSON.stringify(user, null, 2)}</pre>
</>
)
}
export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
// Create authenticated Supabase Client
const supabase = createServerSupabaseClient(ctx)
// Check if we have a session
const {
data: { session },
} = await supabase.auth.getSession()
if (!session)
return {
redirect: {
destination: '/login',
permanent: false,
},
}
return {
props: {
initialSession: session,
user: session.user,
},
}
}