Setting the file. One moment.
Chapter 12 · Clerk Astro Patterns
Subchapter 12.5
references/ssr-pages.mdMarkdown2 KBView on GitHub
Also bundled
Evals---
const { userId, orgId, orgRole } = Astro.locals.auth()
if (!userId) return Astro.redirect('/sign-in')
if (!orgId) return Astro.redirect('/select-org')
if (orgRole !== 'org:admin') return Astro.redirect('/dashboard')
const settings = await fetchOrgSettings(orgId)
---
<h1>Org Settings</h1>---
import { clerkClient } from '@clerk/astro/server'
const { userId } = Astro.locals.auth()
if (!userId) return Astro.redirect('/sign-in')
const client = clerkClient(Astro)
const user = await client.users.getUser(userId)
---
<img src={user.imageUrl} alt={user.fullName ?? ''} />---
const auth = Astro.locals.auth()
if (!auth.userId) return Astro.redirect('/sign-in')
const token = await auth.getToken({ template: 'supabase' })
const data = await fetchFromSupabase(token)
---| Field | Type | Description |
|---|---|---|
userId | string | null | Current user ID |
orgId | string | null | Active org ID |
orgRole | string | null | User’s role in active org |
sessionId | string | null | Current session ID |
has() | function | Check permissions |
getToken() | async function | Get JWT for external APIs |
Astro.locals.auth() returns an auth object — note the () callexport const prerender = true for server auth to workexport const prerender = false