convex-auth

โดย get-convex

เพิ่มการรับรองความถูกต้อง (passkeys/OAuth) ให้กับแอป Convex ปัจจุบัน รวมถึงการเชื่อมต่อ 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.

Skills เพิ่มเติมจาก get-convex

convex-performance-audit
get-convex
ตรวจสอบประสิทธิภาพของ Convex สำหรับการอ่าน การสมัครรับข้อมูล การแข่งขันในการเขียน และข้อจำกัดของฟังก์ชัน ใช้สำหรับฟีเจอร์ที่ช้า การค้นหาข้อมูลเชิงลึก ความขัดแย้งของ OCC หรือการขยายการอ่าน
developmentdatabasedata-analysis
convex
get-convex
กำหนดเส้นทางคำขอ Convex ทั่วไปไปยังทักษะโปรเจกต์ที่ถูกต้อง ใช้เมื่อผู้ใช้ถามว่าควรใช้ทักษะ Convex ใดหรือให้งานแอป Convex ที่ไม่ระบุรายละเอียดชัดเจน
developmentdatabase
convex-setup-auth
get-convex
ตั้งค่า Convex auth, การแมปข้อมูลประจำตัว และการควบคุมการเข้าถึง ใช้สำหรับการเข้าสู่ระบบ ผู้ให้บริการ auth ตารางผู้ใช้ ฟังก์ชันที่ได้รับการป้องกัน หรือบทบาทในแอป Convex
developmentdatabaseapi
convex-quickstart
get-convex
สร้างหรือเพิ่ม Convex ลงในแอป ใช้สำหรับโปรเจกต์ Convex ใหม่, npm create convex@latest, การตั้งค่าฟร้อนท์เอนด์, ตัวแปรสภาพแวดล้อม, หรือการรัน 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
ไมเกรต schema และเติมข้อมูลย้อนหลังบนแอป Convex ที่ใช้งานแล้วโดยใช้ @convex-dev/migrations
developmentdatabase
convex-optimize
get-convex
ตรวจสอบและเพิ่มประสิทธิภาพแอป Convex ที่มีอยู่: ความปลอดภัย การปรับขนาด การอัปเกรด การสังเกตการณ์