Files
supabase/examples/auth/nextjs-full/components/AuthButton.tsx
534c300a7a docs: SSR overhaul combined client page PoC (#38405)
* Draft begins

* Starte SvelteKit

* Changes

* Consolidate creating a client

* Final draft

* Update apps/docs/content/guides/auth/server-side/creating-a-client.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update apps/docs/content/guides/auth/server-side/creating-a-client.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Rework and simplify

* Update apps/docs/content/guides/auth/server-side/creating-a-client.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update apps/docs/content/guides/auth/server-side/creating-a-client.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update apps/docs/content/guides/auth/server-side/creating-a-client.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* improve spacing

* last

* Simplify example

* Prettier

* Fix hono, remove old pages, and add redirects

* Remove from menu

* Update apps/docs/content/guides/auth/server-side/creating-a-client.mdx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Changes

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
2025-11-11 12:37:11 +00:00

38 lines
911 B
TypeScript

import { createClient } from '@/utils/supabase/server'
import Link from 'next/link'
import { redirect } from 'next/navigation'
export default async function AuthButton() {
const supabase = await createClient()
const {
data: { user },
} = await supabase.auth.getUser()
const signOut = async () => {
'use server'
const supabase = await createClient()
await supabase.auth.signOut()
return redirect('/login')
}
return user ? (
<div className="flex items-center gap-4">
Hey, {user.email}!
<form action={signOut}>
<button className="py-2 px-4 rounded-md no-underline bg-btn-background hover:bg-btn-background-hover">
Logout
</button>
</form>
</div>
) : (
<Link
href="/login"
className="py-2 px-3 flex rounded-md no-underline bg-btn-background hover:bg-btn-background-hover"
>
Login
</Link>
)
}