From 0648b4f5d4b82a1bd42c13b5ae44952c8dfc6b9a Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 12:10:46 +0530 Subject: [PATCH 01/12] feat: Add @next-auth/prisma-adapter v1.0.7 --- package-lock.json | 11 ++++++++++- package.json | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index cdf41ef..52766bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "@libsql/client": "^0.8.1", + "@next-auth/prisma-adapter": "^1.0.7", "@prisma/adapter-libsql": "^5.19.1", "@prisma/client": "^5.19.1", "next": "14.2.6", @@ -385,6 +386,15 @@ "integrity": "sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==", "license": "MIT" }, + "node_modules/@next-auth/prisma-adapter": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.7.tgz", + "integrity": "sha512-Cdko4KfcmKjsyHFrWwZ//lfLUbcLqlyFqjd/nYE2m3aZ7tjMNUjpks47iw7NTCnXf+5UWz5Ypyt1dSs1EP5QJw==", + "peerDependencies": { + "@prisma/client": ">=2.26.0 || >=3", + "next-auth": "^4" + } + }, "node_modules/@next/env": { "version": "14.2.6", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.6.tgz", @@ -606,7 +616,6 @@ "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.19.1.tgz", "integrity": "sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==", "hasInstallScript": true, - "license": "Apache-2.0", "engines": { "node": ">=16.13" }, diff --git a/package.json b/package.json index 95d9deb..795afc3 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@libsql/client": "^0.8.1", + "@next-auth/prisma-adapter": "^1.0.7", "@prisma/adapter-libsql": "^5.19.1", "@prisma/client": "^5.19.1", "next": "14.2.6", From b6de0a53f5f214aff075783b72ae9ca572dc6b4b Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:26:27 +0530 Subject: [PATCH 02/12] Refactor: Update database schema for accounts and sessions --- prisma/dev.db | Bin 73728 -> 110592 bytes prisma/dev.db-journal | Bin 12824 -> 29240 bytes .../20240910061511_re/migration.sql | 73 ++++++++++++ .../20240910062346_case/migration.sql | 112 ++++++++++++++++++ .../20240910062624_map/migration.sql | 28 +++++ .../20240910063008_acc/migration.sql | 60 ++++++++++ prisma/schema.prisma | 43 ++++--- 7 files changed, 299 insertions(+), 17 deletions(-) create mode 100644 prisma/migrations/20240910061511_re/migration.sql create mode 100644 prisma/migrations/20240910062346_case/migration.sql create mode 100644 prisma/migrations/20240910062624_map/migration.sql create mode 100644 prisma/migrations/20240910063008_acc/migration.sql diff --git a/prisma/dev.db b/prisma/dev.db index 67d18b943b4ffed08cd7920d0937570850a96d69..de1093ab3fe716cba0b89b1cc5462fb9c0c22b3a 100644 GIT binary patch literal 110592 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 delta 1025 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 WNB{{S0VIF~kih2=Sla#l5C09zU7*_l delta 350 zcmXxfu}Xt65C`ylrPWrn6`!LY<}Q~n$?D?fAPR0J$tAm3g-)eVaPH>rQa7QCyKms) zppyuF0A1WnK@V=Z|H1w4>9e}y$8M|J>aWG%vcF!z!CQYi+ivZg&-R28qSK@76bHnb ziB(NZxpu0tb(sg#Sd_Ve9CKg@&Pf7J-jhzGiEVJflLQBzLi7ZN46tXPeM!j@8mls6 zLWv}ubY+2nrlWDX8drVl2s0iBVw@S8E3pR8mq<2;e2xOC$i9xk~rdYQ-b;A jY Date: Tue, 10 Sep 2024 15:26:37 +0530 Subject: [PATCH 03/12] Refactor: Update layout.tsx to include Providers component --- src/app/layout.tsx | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 3314e47..a0fd797 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,22 +1,25 @@ import type { Metadata } from "next"; import { Inter } from "next/font/google"; import "./globals.css"; +import Providers from "@/components/Layout/Provider"; const inter = Inter({ subsets: ["latin"] }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "Create Next App", + description: "Generated by create next app", }; export default function RootLayout({ - children, + children, }: Readonly<{ - children: React.ReactNode; + children: React.ReactNode; }>) { - return ( - - {children} - - ); + return ( + + + {children} + + + ); } From 901ddcfc1a3bdd3665b4a9f7489b3f368826e9e1 Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:26:45 +0530 Subject: [PATCH 04/12] Refactor: Update Home component to include server-side session check --- src/app/page.tsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index acf55e7..534bdf7 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,9 +1,8 @@ -export default function Home() { - return ( -
-
- -
-
- ); +import { getServerSideSession } from "@/app/lib/get-server-session"; +export default async function Home() { + const session = await getServerSideSession(); + if (!session) { + return
Please login
; + } + return
Hello {session?.user.role}
; } From d33a83984180fb027fd9e567481783a6b5fe0058 Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:27:02 +0530 Subject: [PATCH 05/12] Refactor: Update NextAuth options to include custom fields in JWT and session --- src/app/api/auth/[...nextauth]/options.ts | 93 +++++++++++++---------- 1 file changed, 51 insertions(+), 42 deletions(-) diff --git a/src/app/api/auth/[...nextauth]/options.ts b/src/app/api/auth/[...nextauth]/options.ts index e753ab5..0984052 100644 --- a/src/app/api/auth/[...nextauth]/options.ts +++ b/src/app/api/auth/[...nextauth]/options.ts @@ -1,52 +1,61 @@ -import NextAuth, { DefaultSession } from "next-auth" -import { type NextAuthOptions } from "next-auth"; +import NextAuth, { DefaultSession, type NextAuthOptions, type Session as NextAuthSession } from "next-auth"; import GoogleProvider from "next-auth/providers/google"; -import Google, { GoogleProfile } from "next-auth/providers/google"; +import { PrismaAdapter } from "@next-auth/prisma-adapter"; import prisma from "@/server/db"; +import { UserRoleType } from "@/types"; +import { JWT } from "next-auth/jwt"; -const GOOGLE_CLIENT_ID = process.env.GOOGLE_CLIENT_ID || ""; -const GOOGLE_CLIENT_SECRET = process.env.GOOGLE_CLIENT_SECRET || ""; - +declare module "next-auth" { + interface Session { + user: { + role: UserRoleType; + } & DefaultSession["user"]; + } +} +declare module "next-auth/jwt" { + interface JWT { + role: UserRoleType; + } +} +export const authOptions: NextAuthOptions = { + adapter: PrismaAdapter(prisma), + providers: [ + GoogleProvider({ + clientId: process.env.GOOGLE_ID ?? "", + clientSecret: process.env.GOOGLE_SECRET ?? "", + }), + ], + callbacks: { + async jwt({ token, user }: { token: JWT; user: any }): Promise { + //add user role to token + if (user) { + return { + ...token, + role: user.role, + }; + } + return token; + }, + async session({ session, token }: { session: NextAuthSession; token: JWT }): Promise { + //add role to session + return { + ...session, + user: { + ...session.user, + role: token.role as UserRoleType, + }, + }; + }, + }, -export const authOptions:NextAuthOptions = { - session:{ + session: { strategy: "jwt", }, - providers: [ - // ...add more providers here - GoogleProvider({ - clientId: GOOGLE_CLIENT_ID, - clientSecret: GOOGLE_CLIENT_SECRET, - authorization: { - params: { - prompt: "consent", - access_type: "offline", - response_type: "code" - } - } - }) - ], - callbacks: { - async signIn({ account, profile }) { - if(!profile?.email){ - throw new Error("No email returned from Google") - } - - const user = await prisma.user.upsert({ - where: { email: profile.email }, - update: {}, - create: { - email: profile.email, - name: profile.name || "", - } - }) - console.log("signIn", profile) - return true // Do different verification for other providers that don't have `email_verified` - }, - } -} + secret: process.env.NEXTAUTH_SECRET, + debug: process.env.NODE_ENV === "development", +}; -export default NextAuth(authOptions) \ No newline at end of file +export default NextAuth(authOptions); From 5a79114e09d69859f2842888d244f8d2da27049f Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:27:10 +0530 Subject: [PATCH 06/12] Refactor: Update NextAuth options to include custom fields in JWT and session --- src/app/api/auth/[...nextauth]/route.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/app/api/auth/[...nextauth]/route.ts b/src/app/api/auth/[...nextauth]/route.ts index 048146d..639cea6 100644 --- a/src/app/api/auth/[...nextauth]/route.ts +++ b/src/app/api/auth/[...nextauth]/route.ts @@ -1,6 +1,7 @@ -import NextAuth from "next-auth" -import { authOptions } from "./options" +import { authOptions } from "./options"; -const handler = NextAuth(authOptions) +import NextAuth from "next-auth"; -export { handler as GET, handler as POST } \ No newline at end of file +export const handlers = NextAuth(authOptions); + +export { handlers as GET, handlers as POST }; From 24ee48dc4349faf7778910ede5c547aea8d776d9 Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:27:32 +0530 Subject: [PATCH 07/12] Refactor: Add getServerSideSession function to retrieve server-side session --- src/app/lib/get-server-session.ts | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/app/lib/get-server-session.ts diff --git a/src/app/lib/get-server-session.ts b/src/app/lib/get-server-session.ts new file mode 100644 index 0000000..5190188 --- /dev/null +++ b/src/app/lib/get-server-session.ts @@ -0,0 +1,6 @@ +import { getServerSession } from "next-auth"; +import { authOptions } from "../api/auth/[...nextauth]/options"; + +export async function getServerSideSession() { + return await getServerSession(authOptions); +} From f220d126490c45d14b47f9210aec0fc2c1def8fb Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:27:36 +0530 Subject: [PATCH 08/12] Refactor: Add Providers component to include session provider --- src/components/Layout/Provider.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/components/Layout/Provider.tsx diff --git a/src/components/Layout/Provider.tsx b/src/components/Layout/Provider.tsx new file mode 100644 index 0000000..76e4c21 --- /dev/null +++ b/src/components/Layout/Provider.tsx @@ -0,0 +1,10 @@ +"use client"; +import { SessionProvider } from "next-auth/react"; +import { ReactNode } from "react"; +export default function Providers({ children }: { children: ReactNode }) { + return ( + <> + {children} + + ); +} From 490f79e9e5092648ad76c700b1aaa8ed04cf0103 Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:27:51 +0530 Subject: [PATCH 09/12] Add UserRoleType type definition --- src/types/index.ts | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/types/index.ts diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..463b987 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1 @@ +export type UserRoleType = "ADMIN" | "PARTICIPANT"; From 9c74ee761c0859408ba97a788893497852a257d5 Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:30:47 +0530 Subject: [PATCH 10/12] Refactor: Remove unused environment variables --- .env | 12 ------------ .gitignore | 2 ++ 2 files changed, 2 insertions(+), 12 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 8810a80..0000000 --- a/.env +++ /dev/null @@ -1,12 +0,0 @@ -# Environment variables declared in this file are automatically made available to Prisma. -# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema - -# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. -# See the documentation for all the connection string options: https://pris.ly/d/connection-strings - -DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public" -TURSO_DATABASE_URL="libsql://tedx-database-1-joywin2003.turso.io" -TURSO_AUTH_TOKEN="eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MjU3OTExMTUsImlkIjoiZDBhOGZhODMtMTRjZS00Mjk5LWJhYWYtM2I1NWY1ZjE1MjIyIn0.iAVpHQWM8odXQrYGcLMJmdkBJVflZ5Oj2g7joguELccBc-AqyDvTTEqbG6Tor6K4uE4Y40j94dto9tQDCvbCDA" -GOOGLE_CLIENT_ID="944713611072-n2867bpl98ugbkesao6vfohg06gh9k7k.apps.googleusercontent.com" -GOOGLE_CLIENT_SECRET="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" -TURSO_DB_NAME="tedx-database-1" \ No newline at end of file diff --git a/.gitignore b/.gitignore index fd3dbb5..5a5ef93 100644 --- a/.gitignore +++ b/.gitignore @@ -27,10 +27,12 @@ yarn-error.log* # local env files .env*.local +.env # vercel .vercel + # typescript *.tsbuildinfo next-env.d.ts From 637688330ba2e341bb9ef5a23ae1fb046e398ba0 Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:32:21 +0530 Subject: [PATCH 11/12] Refactor: Comment out debug option in NextAuth options --- src/app/api/auth/[...nextauth]/options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/api/auth/[...nextauth]/options.ts b/src/app/api/auth/[...nextauth]/options.ts index 0984052..621191d 100644 --- a/src/app/api/auth/[...nextauth]/options.ts +++ b/src/app/api/auth/[...nextauth]/options.ts @@ -55,7 +55,7 @@ export const authOptions: NextAuthOptions = { strategy: "jwt", }, secret: process.env.NEXTAUTH_SECRET, - debug: process.env.NODE_ENV === "development", + // debug: process.env.NODE_ENV === "development", }; export default NextAuth(authOptions); From ddce14ce8c65b6bf4e112334819cfd783d01f6ed Mon Sep 17 00:00:00 2001 From: vyshnav Date: Tue, 10 Sep 2024 15:36:46 +0530 Subject: [PATCH 12/12] env example --- src/.env.example | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/.env.example diff --git a/src/.env.example b/src/.env.example new file mode 100644 index 0000000..7d15426 --- /dev/null +++ b/src/.env.example @@ -0,0 +1,6 @@ +TURSO_DATABASE_URL = "" +TURSO_AUTH_TOKEN = "" +GOOGLE_ID = "" +GOOGLE_SECRET = "" +NEXT_PUBLIC_SITE_URL = "" +NEXTAUTH_SECRET = "" \ No newline at end of file