Backend: JWT middleware validates Clerk tokens on every request, extracts org ID from claims, enforces org-scoped queries via Supabase RLS. Frontend: ClerkProvider wraps the app, auth gate blocks unauthenticated access, UserButton in header, token injected into every API call. Supabase production wired to trust Clerk JWTs via Third-Party Auth integration. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
19 lines
No EOL
536 B
JavaScript
19 lines
No EOL
536 B
JavaScript
import { StrictMode } from "react";
|
|
import { createRoot } from "react-dom/client";
|
|
import { ClerkProvider } from "@clerk/react";
|
|
import App from "./App.jsx";
|
|
import "./index.css";
|
|
|
|
const PUBLISHABLE_KEY = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY;
|
|
|
|
if (!PUBLISHABLE_KEY) {
|
|
throw new Error("Missing VITE_CLERK_PUBLISHABLE_KEY — add it to signal-ui/.env");
|
|
}
|
|
|
|
createRoot(document.getElementById("root")).render(
|
|
<StrictMode>
|
|
<ClerkProvider publishableKey={PUBLISHABLE_KEY}>
|
|
<App />
|
|
</ClerkProvider>
|
|
</StrictMode>
|
|
); |