feat: add clerk auth support with convex (#548)

This commit is contained in:
Aman Varshney
2025-08-29 00:21:08 +05:30
committed by GitHub
parent 8d48ae0359
commit 54bcdf1cbc
153 changed files with 1954 additions and 771 deletions

View File

@@ -1,11 +1,11 @@
{{#if (eq backend 'next')}}
import type { NextRequest } from "next/server";
{{#if auth}}
{{#if (eq auth "better-auth")}}
import { auth } from "./auth";
{{/if}}
export async function createContext(req: NextRequest) {
{{#if auth}}
{{#if (eq auth "better-auth")}}
const session = await auth.api.getSession({
headers: req.headers,
});
@@ -19,7 +19,7 @@ export async function createContext(req: NextRequest) {
{{else if (eq backend 'hono')}}
import type { Context as HonoContext } from "hono";
{{#if auth}}
{{#if (eq auth "better-auth")}}
import { auth } from "./auth";
{{/if}}
@@ -28,7 +28,7 @@ export type CreateContextOptions = {
};
export async function createContext({ context }: CreateContextOptions) {
{{#if auth}}
{{#if (eq auth "better-auth")}}
const session = await auth.api.getSession({
headers: context.req.raw.headers,
});
@@ -45,7 +45,7 @@ export async function createContext({ context }: CreateContextOptions) {
{{else if (eq backend 'elysia')}}
import type { Context as ElysiaContext } from "elysia";
{{#if auth}}
{{#if (eq auth "better-auth")}}
import { auth } from "./auth";
{{/if}}
@@ -54,7 +54,7 @@ export type CreateContextOptions = {
};
export async function createContext({ context }: CreateContextOptions) {
{{#if auth}}
{{#if (eq auth "better-auth")}}
const session = await auth.api.getSession({
headers: context.request.headers,
});
@@ -70,13 +70,13 @@ export async function createContext({ context }: CreateContextOptions) {
}
{{else if (eq backend 'express')}}
{{#if auth}}
{{#if (eq auth "better-auth")}}
import { fromNodeHeaders } from "better-auth/node";
import { auth } from "./auth";
{{/if}}
export async function createContext(opts: any) {
{{#if auth}}
{{#if (eq auth "better-auth")}}
const session = await auth.api.getSession({
headers: fromNodeHeaders(opts.req.headers),
});
@@ -93,13 +93,13 @@ export async function createContext(opts: any) {
{{else if (eq backend 'fastify')}}
import type { IncomingHttpHeaders } from "node:http";
{{#if auth}}
{{#if (eq auth "better-auth")}}
import { fromNodeHeaders } from "better-auth/node";
import { auth } from "./auth";
{{/if}}
export async function createContext(req: IncomingHttpHeaders) {
{{#if auth}}
{{#if (eq auth "better-auth")}}
const session = await auth.api.getSession({
headers: fromNodeHeaders(req),
});

View File

@@ -5,7 +5,7 @@ export const o = os.$context<Context>();
export const publicProcedure = o;
{{#if auth}}
{{#if (eq auth "better-auth")}}
const requireAuth = o.middleware(async ({ context, next }) => {
if (!context.session?.user) {
throw new ORPCError("UNAUTHORIZED");

View File

@@ -1,4 +1,4 @@
{{#if auth}}
{{#if (eq auth "better-auth")}}
import { createContext } from '@/lib/context'
{{/if}}
import { appRouter } from '@/routers'
@@ -10,7 +10,7 @@ const handler = new RPCHandler(appRouter)
async function handleRequest(req: NextRequest) {
const { response } = await handler.handle(req, {
prefix: '/rpc',
context: {{#if auth}}await createContext(req){{else}}{}{{/if}},
context: {{#if (eq auth "better-auth")}}await createContext(req){{else}}{}{{/if}},
})
return response ?? new Response('Not found', { status: 404 })