From 7aac192af43c35208e089c0fa5243644b8077399 Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Sun, 19 May 2024 20:38:56 +0200 Subject: [PATCH] chore: move to /auth/login route --- package.json | 1 + prisma/schema.prisma | 1 + src/app/admin/page.tsx | 2 +- src/app/auth/{signIn => login}/page.tsx | 0 src/app/auth/signUp/page.tsx | 2 +- src/app/dashboard/[id]/page.tsx | 2 +- src/app/dashboard/page.tsx | 2 +- src/components/app/NavBar/NavBar.tsx | 2 +- src/lib/auth/actions.ts | 2 +- src/lib/auth/index.ts | 4 ++++ yarn.lock | 7 +++++++ 11 files changed, 19 insertions(+), 6 deletions(-) rename src/app/auth/{signIn => login}/page.tsx (100%) diff --git a/package.json b/package.json index 36be3df..8927691 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-switch": "^1.0.3", "@sern/poster": "^1.2.6", + "arctic": "^1.8.1", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "lucia": "^3.1.1", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 7cafb8d..1b2a45b 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -16,6 +16,7 @@ datasource db { model User { id String @id @default(cuid()) username String @unique + discord_id String @unique hashed_password String isAdmin Boolean @default(false) sessions Session[] diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index be046ad..584fb09 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -5,7 +5,7 @@ import { redirect } from "next/navigation"; export default async function Page() { const { user } = await validateRequest() - if (!user) return redirect('/auth/signIn') + if (!user) return redirect('/auth/login') if (!user.isAdmin) return (

Sorry

) diff --git a/src/app/auth/signIn/page.tsx b/src/app/auth/login/page.tsx similarity index 100% rename from src/app/auth/signIn/page.tsx rename to src/app/auth/login/page.tsx diff --git a/src/app/auth/signUp/page.tsx b/src/app/auth/signUp/page.tsx index 7eb8a79..a59c3e9 100644 --- a/src/app/auth/signUp/page.tsx +++ b/src/app/auth/signUp/page.tsx @@ -34,7 +34,7 @@ export default function Page() {
Already have an account? - + Login
diff --git a/src/app/dashboard/[id]/page.tsx b/src/app/dashboard/[id]/page.tsx index 44a4cad..0d2eea2 100644 --- a/src/app/dashboard/[id]/page.tsx +++ b/src/app/dashboard/[id]/page.tsx @@ -6,7 +6,7 @@ import { nullsToUndefined } from "@/lib/utils"; export default async function Page({ params }: { params: { id: string } }) { const { user } = await validateRequest() - if (!user) return redirect('/auth/signIn') + if (!user) return redirect('/auth/login') const dbFetch = await prisma.bot.findUnique({ where: { diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 21806bd..3a2f90d 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -5,7 +5,7 @@ import { redirect } from "next/navigation"; export default async function Page() { const { user } = await validateRequest() - if (!user) return redirect('/auth/signIn') + if (!user) return redirect('/auth/login') const dbFetch = await prisma.bot.findMany({ where: { diff --git a/src/components/app/NavBar/NavBar.tsx b/src/components/app/NavBar/NavBar.tsx index 6f2a05b..b773fdb 100644 --- a/src/components/app/NavBar/NavBar.tsx +++ b/src/components/app/NavBar/NavBar.tsx @@ -80,7 +80,7 @@ export default function Navbar() { ) : ( - + )} diff --git a/src/lib/auth/actions.ts b/src/lib/auth/actions.ts index 42529c2..4e66c2f 100644 --- a/src/lib/auth/actions.ts +++ b/src/lib/auth/actions.ts @@ -13,7 +13,7 @@ export async function logout() { await lucia.invalidateSession(session!.id); const sessionCookie = lucia.createBlankSessionCookie(); cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); - return redirect("/auth/signIn"); + return redirect("/auth/login"); } export async function login(prev: any, data: FormData) { diff --git a/src/lib/auth/index.ts b/src/lib/auth/index.ts index c0556c7..84efc15 100644 --- a/src/lib/auth/index.ts +++ b/src/lib/auth/index.ts @@ -3,6 +3,7 @@ import { Lucia, Session, User } from "lucia"; import prisma from "../db"; import { cache } from "react"; import { cookies } from "next/headers"; +import { Discord } from 'arctic' const adapter = new PrismaAdapter(prisma.session, prisma.user); @@ -23,6 +24,9 @@ export const lucia = new Lucia(adapter, { }; } }); + +export const discord = new Discord(process.env.DSC_CLIENTID!, process.env.DSC_CLIENTSECRET!, process.env.NODE_ENV === "production" ? process.env.DSC_REDIRECTURI! : "http://localhost:3000/api/auth/discord/callback") + export const validateRequest = cache(async () => { const sessionId = cookies().get(lucia.sessionCookieName)?.value ?? null diff --git a/yarn.lock b/yarn.lock index 2335e8c..3c15e05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -926,6 +926,13 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +arctic@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/arctic/-/arctic-1.8.1.tgz#a5ab9f2cd7980760be7a99058f9b9501a5d3cafe" + integrity sha512-YmTcSfk8+NDSZt7qWYBX4HrikHZA3EQgmfFYlS4BwtYzPrji2VjAFrCFMElnjp72zmx3J3mz1ldjaXvjxmiW4Q== + dependencies: + oslo "1.2.0" + arg@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"