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"