feat: Nextauth is working

This commit is contained in:
Pablo Lara committed 2024-08-27 18:37:45 +02:00
1 parent 1985b16824
commit b5a40d07cf
16 files changed
+1728 -630

No files matched your search

+9 -1
View File
@@ -1,7 +1,9 @@
import "@/styles/globals.css";
import { Metadata, Viewport } from "next";
import { redirect } from "next/navigation";
import { auth } from "@/auth.config";
import { Toaster } from "@/components/ui";
import { fontSans } from "@/config/fonts";
import { siteConfig } from "@/config/site";
@@ -27,11 +29,17 @@ export const viewport: Viewport = {
],
};
export default function RootLayout({
export default async function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
const session = await auth();
if (session?.user) {
redirect("/");
}
return (
<html suppressHydrationWarning lang="en">
<head />
+24
View File
@@ -0,0 +1,24 @@
import { Spacer } from "@nextui-org/react";
import { redirect } from "next/navigation";
import React from "react";
import { auth } from "@/auth.config";
import { Header } from "@/components/ui";
export default async function Profile() {
const session = await auth();
if (!session?.user) {
// redirect("/sign-in?returnTo=/profile");
redirect("/sign-in");
}
return (
<>
<Header title="User Profile" icon="ci:users" />
<Spacer y={4} />
<Spacer y={6} />
<pre>{JSON.stringify(session.user, null, 2)}</pre>
</>
);
}
+3
View File
@@ -0,0 +1,3 @@
import { handlers } from "@/auth.config";
export const { GET, POST } = handlers;
+6 -3
View File
@@ -2,6 +2,7 @@
import { NextUIProvider } from "@nextui-org/system";
import { useRouter } from "next/navigation";
import { SessionProvider } from "next-auth/react";
import { ThemeProvider as NextThemesProvider } from "next-themes";
import { ThemeProviderProps } from "next-themes/dist/types";
import * as React from "react";
@@ -15,8 +16,10 @@ export function Providers({ children, themeProps }: ProvidersProps) {
const router = useRouter();
return (
<NextUIProvider navigate={router.push}>
<NextThemesProvider {...themeProps}>{children}</NextThemesProvider>
</NextUIProvider>
<SessionProvider>
<NextUIProvider navigate={router.push}>
<NextThemesProvider {...themeProps}>{children}</NextThemesProvider>
</NextUIProvider>
</SessionProvider>
);
}