Files
webdev-pipeline/lib/auth-server.ts
2026-06-05 17:04:03 +02:00

44 lines
1009 B
TypeScript

import { convexBetterAuthNextJs } from "@convex-dev/better-auth/nextjs";
function getErrorText(error: unknown): string {
if (error instanceof Error) {
return error.message;
}
if (typeof error === "string") {
return error;
}
if (error && typeof error === "object") {
const { data, message } = error as { data?: unknown; message?: unknown };
return [message, data]
.filter((value): value is string => typeof value === "string")
.join(" ");
}
return "";
}
function isConvexAuthError(error: unknown): boolean {
return /\b(Unauthenticated|Unauthorized|Not authenticated)\b/i.test(
getErrorText(error),
);
}
export const {
handler,
preloadAuthQuery,
isAuthenticated,
getToken,
fetchAuthQuery,
fetchAuthMutation,
fetchAuthAction,
} = convexBetterAuthNextJs({
convexUrl: process.env.NEXT_PUBLIC_CONVEX_URL!,
convexSiteUrl: process.env.NEXT_PUBLIC_CONVEX_SITE_URL!,
jwtCache: {
enabled: true,
isAuthError: isConvexAuthError,
},
});