clerk-nuxt-patterns

द्वारा clerk

Nuxt 3 प्रमाणीकरण पैटर्न @clerk/nuxt के साथ - मिडलवेयर, कम्पोज़ेबल्स, सर्वर

npx skills add https://github.com/clerk/skills --skill clerk-nuxt-patterns

Nuxt Patterns

What Do You Need?

TaskReference
Protect routes with middlewarereferences/nuxt-middleware.md
Auth in server API routes (Nitro)references/server-api-routes.md
useAuth / useUser in componentsreferences/composables.md
SSR-safe auth patternsreferences/ssr-auth.md

References

ReferenceDescription
references/nuxt-middleware.mdRoute protection, clerkMiddleware()
references/server-api-routes.mdNitro server route auth
references/composables.mduseAuth, useUser, useClerk
references/ssr-auth.mdSSR hydration, server vs client

Setup

npm install @clerk/nuxt

.env:

NUXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_...
NUXT_CLERK_SECRET_KEY=sk_...

nuxt.config.ts:

export default defineNuxtConfig({
  modules: ['@clerk/nuxt'],
})

This single line auto-configures middleware, plugins, and component auto-imports.

Mental Model

@clerk/nuxt auto-imports all Clerk components and composables — no explicit imports needed in <script setup>.

  • Composables (useAuth, useUser) — client-side reactive, inside <script setup>
  • Server routes (clerkClient) — Nitro server routes, event.context.auth
  • Middleware (clerkMiddleware) — auto-registered, use auth().protect() to lock routes

Minimal Pattern

<!-- pages/dashboard.vue -->
<script setup lang="ts">
definePageMeta({ middleware: 'auth' })
const { userId } = useAuth()
</script>

<template>
  <Show when="signed-in">
    <p>Hello {{ userId }}</p>
  </Show>
</template>

definePageMeta({ middleware: 'auth' }) uses the built-in auth middleware from @clerk/nuxt.

Common Pitfalls

SymptomCauseFix
Composables return undefined on serveruseAuth is client-onlyUse event.context.auth in server routes
Route not protectedMissing middleware: 'auth' metaAdd definePageMeta({ middleware: 'auth' })
clerkClient not availableWrong import pathImport from @clerk/nuxt/server
Hydration mismatchRendering auth state before mountedWrap in <ClientOnly> or check isLoaded
Env vars not picked upWrong prefixNuxt requires NUXT_PUBLIC_ for public, NUXT_ for server

Org-Aware Pattern

<script setup lang="ts">
const { orgId, orgRole } = useAuth()
</script>

<template>
  <div v-if="orgId">
    <p>Org: {{ orgId }}</p>
    <p v-if="orgRole === 'org:admin'">Admin panel</p>
  </div>
  <div v-else>
    <OrganizationSwitcher />
  </div>
</template>

See Also

  • clerk-setup - Initial Clerk install
  • clerk-custom-ui - Custom flows & appearance
  • clerk-orgs - B2B organizations

Docs

Nuxt SDK

clerk की और Skills

clerk-testing
clerk
Clerk प्रमाणीकरण प्रवाहों के लिए Playwright और Cypress में E2E परीक्षण उपयोगिताएँ। Playwright और Cypress दोनों फ्रेमवर्क का समर्थन करता है, जिसमें फ्रेमवर्क-विशिष्ट सेटअप पैटर्न (Playwright के लिए globalSetup, Cypress के लिए कस्टम कमांड) शामिल हैं। परीक्षण वातावरण को आरंभ करने और बॉट डिटेक्शन को बायपास करने के लिए clerkSetup() और setupClerkTestingToken() उपयोगिताएँ प्रदान करता है। परीक्षण निष्पादन समय को कम करने के लिए, प्रमाणित सत्रों को परीक्षणों में पुन: उपयोग कर
clerk-swift
clerk
ClerkKit का उपयोग करके पूर्व-निर्मित या कस्टम प्रमाणीकरण प्रवाह के साथ मूल Swift/iOS प्रमाणीकरण। दो कार्यान्वयन मोड का समर्थन करता है: पूर्व-निर्मित AuthView घटक या पूरी तरह से कस्टम मूल प्रवाह, जो परियोजना आवश्यकताओं के आधार पर चुने जाते हैं। ऐप कॉन्फ़िगरेशन में एक मान्य Clerk प्रकाशनीय कुंजी के सीधे वायरिंग की आवश्यकता होती है; डिफ़ॉल्ट रूप से plist या पर्यावरण फ़ाइल अप्रत्यक्षता का उपयोग नहीं करता
mosaic
clerk
Work on Mosaic UI: styling a component with slot recipes (`defineSlotRecipe` / `useRecipe` / slots / variants), or building a flow — authoring a state machine…
clerk-billing
clerk
सदस्यता प्रबंधन के लिए क्लर्क बिलिंग - क्लर्क का PricingTable प्रस्तुत करें
clerk-nextjs-patterns
clerk
उन्नत Next.js पैटर्न प्रमाणीकरण, मिडलवेयर, सर्वर एक्शन और Clerk के साथ उपयोगकर्ता-स्कोप्ड कैशिंग के लिए। सर्वर-साइड await auth() को क्लाइंट-साइड useAuth() हुक से अलग करता है; इन्हें मिलाना एक सामान्य ब्रेकिंग गलती है। मिडलवेयर रणनीतियों (पब्लिक-फर्स्ट बनाम प्रोटेक्टेड-फर्स्ट), API रूट सुरक्षा, और उचित HTTP स्थिति कोड (401 बनाम 403) को शामिल करता है। unstable_cache के साथ उपयोगकर्ता-स्कोप्ड कैशिं
clerk-expo-patterns
clerk
एक्सपो / रिएक्ट नेटिव पैटर्न्स क्लर्क के साथ — सिक्योरस्टोर टोकन कैश, ओएथ
changesets
clerk
Create or refresh a `.changeset/<slug>.md` for the current branch, or report that none is required. Triggers on "/changesets create", "add a changeset",…
clerk-astro-patterns
clerk
एस्ट्रो पैटर्न्स क्लर्क के साथ — मिडलवेयर, SSR पेजेस, आइलैंड कम्पोनेंट्स,