convex-auth

द्वारा get-convex

वर्तमान Convex ऐप में प्रमाणीकरण (passkeys/OAuth) जोड़ें, जिसमें auth.config.ts वायरिंग शामिल है।

npx skills add https://github.com/get-convex/agent-skills --skill convex-auth

Add sign-in to the app

Install and wire @convex-dev/auth for the current app: a provider (passkeys by default, or OAuth/password), the server config, the client hooks, and a sign-in UI — correctly, including the auth.config.ts that's the #1 real-world auth footgun.

Workflow

  1. Install @convex-dev/auth (pinned build) and add it to convex.config.ts. With pnpm, also pnpm add jose (it won't hoist otherwise); you need it for step 3.
  2. Add the provider in convex/auth.ts (Passkey by default; Password or OAuth like Google on request).
  3. Generate the auth keys HEADLESSLY. Do NOT run the interactive npx @convex-dev/auth wizard: it needs a login/TTY and hangs in non-interactive, anonymous, or CI runs (the #1 auth time-sink). Generate JWT_PRIVATE_KEY + JWKS deterministically with jose: node -e 'import("jose").then(async({generateKeyPair,exportPKCS8,exportJWK})=>{const k=await generateKeyPair("RS256",{extractable:true});const priv=await exportPKCS8(k.privateKey);const pub=await exportJWK(k.publicKey);process.stdout.write(JSON.stringify({JWT_PRIVATE_KEY:priv.trimEnd().replace(/\n/g," "),JWKS:JSON.stringify({keys:[{use:"sig",...pub}]})}))})' > .auth-keys.json Then set JWT_PRIVATE_KEY and JWKS (from .auth-keys.json) plus SITE_URL on the deployment. Prefer the Convex MCP envSet tool, one call per var, to avoid shell-quoting the multi-line key. CLI fallback: use the NAME=VALUE form (npx convex env set "JWT_PRIVATE_KEY=$JWT"), NEVER env set JWT_PRIVATE_KEY "$JWT" (the value starts with -----BEGIN and the CLI parses the leading - as an unknown flag). SITE_URL is the dev URL (e.g. http://localhost:3000). Delete .auth-keys.json after.
  4. Write convex/auth.config.ts (the silently-always-signed-out bug lives here if it's wrong).
  5. Wire the client: ConvexAuthProvider, the sign-in component, and route guards. If you import shadcn/ui primitives (button, input, textarea, label, and so on), add them first with npx shadcn@latest add <name>; a missing @/components/ui/* is a hard build error.
  6. Verify a sign-in round-trips before declaring done.

Rules

  • Generate JWT_PRIVATE_KEY/JWKS with jose (extractable RS256; PKCS8 newlines to spaces; JWKS = {keys:[{use:"sig", ...publicJwk}]}). Do NOT run the interactive npx @convex-dev/auth wizard: it hangs headless/anonymous. Set the vars via the MCP envSet tool or the NAME=VALUE CLI form.
  • Always write auth.config.ts: a missing/incorrect one makes the app silently always-signed-out with no error.
  • Passkeys by default; only switch to password/OAuth on explicit request.
  • Install any shadcn/ui primitive you import up front (npx shadcn@latest add ...); a missing @/components/ui/* is a hard build failure.
  • Verify a real sign-in works before finishing.

get-convex की और Skills

convex-performance-audit
get-convex
कॉन्वेक्स प्रदर्शन का ऑडिट करता है: रीड, सब्सक्रिप्शन, राइट कंटेंशन और फंक्शन सीमाएँ। धीमी सुविधाओं, इनसाइट्स निष्कर्षों, OCC विरोधों या रीड एम्प्लीफिकेशन के लिए उपयोग करें।
developmentdatabasedata-analysis
convex
get-convex
सामान्य Convex अनुरोधों को सही प्रोजेक्ट कौशल पर रूट करता है। इसका उपयोग तब करें जब उपयोगकर्ता पूछता है कि किस Convex कौशल का उपयोग करना है या कोई अपर्याप्त रूप से निर्दिष्ट Convex ऐप कार्य देता है।
developmentdatabase
convex-setup-auth
get-convex
Convex प्रमाणीकरण, पहचान मैपिंग और पहुँच नियंत्रण सेट करता है। Convex ऐप में लॉगिन, प्रमाणीकरण प्रदाताओं, उपयोगकर्ता तालिकाओं, संरक्षित फ़ंक्शन या भूमिकाओं के लिए उपयोग करें।
developmentdatabaseapi
convex-quickstart
get-convex
एप्लिकेशन में Convex बनाता या जोड़ता है। नए Convex प्रोजेक्ट्स, npm create convex@latest, फ्रंटएंड सेटअप, env वेरिएबल्स, या पहली npx convex dev रन के लिए उपयोग करें।
developmentdatabase
convex-migration-helper
get-convex
Convex स्कीमा और डेटा माइग्रेशन की योजना widen-migrate-narrow और @convex-dev/migrations के साथ बनाता है। ब्रेकिंग स्कीमा परिवर्तनों, बैकफिल, टेबल रीशेपिंग या जीरो-डाउनटाइम रोलआउट के लिए उपयोग करें।
developmentdatabase
convex-create-component
get-convex
पुन: प्रयोग करने योग्य Convex घटकों का निर्माण करता है जिनमें पृथक तालिकाएँ और ऐप-मुखी API होते हैं। नए घटकों, पुन: प्रयोग करने योग्य बैकएंड मॉड्यूल, एकीकरण या घटक सीमा कार्य के लिए उपयोग करें।
developmentdatabase
convex-migrate
get-convex
तैनात Convex ऐप पर @convex-dev/migrations का उपयोग करके स्कीमा माइग्रेट करें और डेटा बैकफिल करें।
developmentdatabase
convex-optimize
get-convex
मौजूदा Convex ऐप का ऑडिट और अनुकूलन करें: सुरक्षा, स्केल, अपग्रेड, अवलोकन क्षमता।