feat: Revamped Authentication layer with Clerk

This commit is contained in:
Bart van der Braak 2023-06-13 00:09:59 +02:00
parent 64179b81cc
commit db122bcf59
6 changed files with 53 additions and 34 deletions

View file

@ -1,2 +1,6 @@
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/overview
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/overview

View file

@ -1,31 +1,3 @@
import { Particles } from "@/components/landing/particles";
import {
ClerkProvider,
SignIn,
SignedIn,
SignedOut,
} from "@clerk/nextjs/app-beta";
export default function AppLayout({ children }: { children: React.ReactNode }) {
return (
<ClerkProvider>
<SignedIn>{children}</SignedIn>
<SignedOut>
<div className="flex items-center justify-center w-screen h-screen">
<Particles className="absolute inset-0 -z-10 " />
<SignIn
appearance={{
variables: {
colorPrimary: "#161616",
colorText: "#161616",
},
}}
afterSignInUrl={"/overview"}
afterSignUpUrl={"/overview"}
/>
</div>
</SignedOut>
</ClerkProvider>
);
return children;
}

View file

@ -6,6 +6,7 @@ import "tailwindcss/tailwind.css";
import { ToastProvider } from "../toast-provider";
import { Metadata } from "next";
import { ClerkProvider } from "@clerk/nextjs/app-beta";
export const metadata: Metadata = {
title: {
@ -67,11 +68,15 @@ export default async function RootLayout({ children }: RootLayoutProps) {
suppressHydrationWarning
className={[inter.variable, calSans.variable].join(" ")}
>
<head />
<head>
<meta charSet="utf-8"></meta>
</head>
<body className="min-h-screen antialiased">
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem>
<ToastProvider>{children}</ToastProvider>
</ThemeProvider>
<ClerkProvider>
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem>
<ToastProvider>{children}</ToastProvider>
</ThemeProvider>
</ClerkProvider>
</body>
</html>
</>

View file

@ -0,0 +1,19 @@
import { Particles } from "@/components/landing/particles";
import { SignIn } from "@clerk/nextjs/app-beta";
export default function Page() {
return (
<div className="flex items-center justify-center w-screen h-screen">
<Particles className="absolute inset-0 -z-10 " />
<SignIn
appearance={{
variables: {
colorPrimary: "#161616",
colorText: "#161616",
},
}}
/>
</div>
);
}

View file

@ -0,0 +1,19 @@
import { Particles } from "@/components/landing/particles";
import { SignUp } from "@clerk/nextjs/app-beta";
export default function Page() {
return (
<div className="flex items-center justify-center w-screen h-screen">
<Particles className="absolute inset-0 -z-10 " />
<SignUp
appearance={{
variables: {
colorPrimary: "#161616",
colorText: "#161616",
},
}}
/>
</div>
);
}

View file

@ -17,7 +17,7 @@ export const Header: React.FC = () => {
<li>
<Link
className="text-sm font-medium text-zinc-300 hover:text-white duration-500"
href="/overview"
href="/sign-in"
>
Sign in
</Link>