aboutsummaryrefslogtreecommitdiff
path: root/apps/web/app/lib/auth/authMiddleware.ts
diff options
context:
space:
mode:
authorDhravya Shah <[email protected]>2025-01-20 17:49:19 -0700
committerDhravya Shah <[email protected]>2025-01-20 17:50:45 -0700
commit47904011de646b92b1f3774f9a30bcfa118c5dc4 (patch)
treeab0e5e79c4ad5465ceeedc9b4015be2d9d01be45 /apps/web/app/lib/auth/authMiddleware.ts
parentMerge pull request #295 from supermemoryai/extension/duplicate-save-fix (diff)
downloadsupermemory-47904011de646b92b1f3774f9a30bcfa118c5dc4.tar.xz
supermemory-47904011de646b92b1f3774f9a30bcfa118c5dc4.zip
Supermemory v2 Release 🚀
Diffstat (limited to 'apps/web/app/lib/auth/authMiddleware.ts')
-rw-r--r--apps/web/app/lib/auth/authMiddleware.ts45
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/web/app/lib/auth/authMiddleware.ts b/apps/web/app/lib/auth/authMiddleware.ts
new file mode 100644
index 00000000..e4b59243
--- /dev/null
+++ b/apps/web/app/lib/auth/authMiddleware.ts
@@ -0,0 +1,45 @@
+import { AppLoadContext, redirect } from "@remix-run/cloudflare";
+
+import { getSessionFromRequest } from "@supermemory/authkit-remix-cloudflare/src/session";
+import { database, eq } from "@supermemory/db";
+import { User, users } from "@supermemory/db/schema";
+
+export const verifyOrCreateUser = async (
+ request: Request,
+ context: AppLoadContext,
+): Promise<User | null> => {
+ const session = await getSessionFromRequest(request, context);
+ console.log(session);
+ if (!session?.user?.id) {
+ return null;
+ }
+
+ let user = await database(context.cloudflare.env.HYPERDRIVE.connectionString)
+ .select()
+ .from(users)
+ .where(eq(users.uuid, session.user.id));
+
+ if ((!user || user.length === 0) && session?.user?.id) {
+ const newUser = await database(context.cloudflare.env.HYPERDRIVE.connectionString)
+ .insert(users)
+ .values({
+ uuid: session.user?.id,
+ email: session.user?.email,
+ firstName: session.user?.firstName,
+ lastName: session.user?.lastName,
+ createdAt: new Date(),
+ updatedAt: new Date(),
+ emailVerified: false,
+ profilePictureUrl: session.user?.profilePictureUrl ?? "",
+ })
+ .returning();
+
+ user = newUser;
+ }
+
+ if (!user) {
+ return null;
+ }
+
+ return user[0];
+};