summaryrefslogtreecommitdiff
path: root/apps/web/src/auth
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/auth')
-rw-r--r--apps/web/src/auth/client.ts6
-rw-r--r--apps/web/src/auth/rate-limit.ts21
-rw-r--r--apps/web/src/auth/server.ts43
3 files changed, 0 insertions, 70 deletions
diff --git a/apps/web/src/auth/client.ts b/apps/web/src/auth/client.ts
deleted file mode 100644
index 58be51c3..00000000
--- a/apps/web/src/auth/client.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { createAuthClient } from "better-auth/react";
-import { webEnv } from "@/env/web";
-
-export const { signIn, signUp, useSession } = createAuthClient({
- baseURL: webEnv.NEXT_PUBLIC_SITE_URL,
-});
diff --git a/apps/web/src/auth/rate-limit.ts b/apps/web/src/auth/rate-limit.ts
deleted file mode 100644
index c10c3819..00000000
--- a/apps/web/src/auth/rate-limit.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Ratelimit } from "@upstash/ratelimit";
-import { Redis } from "@upstash/redis";
-import { webEnv } from "@/env/web";
-
-const redis = new Redis({
- url: webEnv.UPSTASH_REDIS_REST_URL,
- token: webEnv.UPSTASH_REDIS_REST_TOKEN,
-});
-
-export const baseRateLimit = new Ratelimit({
- redis,
- limiter: Ratelimit.slidingWindow(100, "1 m"), // 100 requests per minute
- analytics: true,
- prefix: "rate-limit",
-});
-
-export async function checkRateLimit({ request }: { request: Request }) {
- const ip = request.headers.get("x-forwarded-for") ?? "anonymous";
- const { success } = await baseRateLimit.limit(ip);
- return { success, limited: !success };
-}
diff --git a/apps/web/src/auth/server.ts b/apps/web/src/auth/server.ts
deleted file mode 100644
index 5e49387a..00000000
--- a/apps/web/src/auth/server.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { betterAuth, type RateLimit } from "better-auth";
-import { drizzleAdapter } from "better-auth/adapters/drizzle";
-import { Redis } from "@upstash/redis";
-import { db } from "@/db";
-import { webEnv } from "@/env/web";
-
-const redis = new Redis({
- url: webEnv.UPSTASH_REDIS_REST_URL,
- token: webEnv.UPSTASH_REDIS_REST_TOKEN,
-});
-
-export const auth = betterAuth({
- database: drizzleAdapter(db, {
- provider: "pg",
- usePlural: true,
- }),
- secret: webEnv.BETTER_AUTH_SECRET,
- user: {
- deleteUser: {
- enabled: true,
- },
- },
- emailAndPassword: {
- enabled: true,
- },
- rateLimit: {
- storage: "secondary-storage",
- customStorage: {
- get: async (key) => {
- const value = await redis.get(key);
- return value as RateLimit | undefined;
- },
- set: async (key, value) => {
- await redis.set(key, value);
- },
- },
- },
- baseURL: webEnv.NEXT_PUBLIC_SITE_URL,
- appName: "OpenCut",
- trustedOrigins: [webEnv.NEXT_PUBLIC_SITE_URL],
-});
-
-export type Auth = typeof auth;