diff --git a/front/.env b/front/.env index 2226642..d7e5fe9 100644 --- a/front/.env +++ b/front/.env @@ -1,3 +1,3 @@ -NEXTAUTH_URL=http://localhost:3000 +NEXTAUTH_URL=http://localhost:3016 # GEN AUTH_SECRET: $ openssl rand -base64 32 NEXTAUTH_SECRET=6lHRWUvCBtqlgTWc6aFn6s6PudYjuN6oUY+RrcEntTU= diff --git a/front/next.config.mjs b/front/next.config.mjs index beaab4e..2bbec78 100644 --- a/front/next.config.mjs +++ b/front/next.config.mjs @@ -9,6 +9,16 @@ const nextConfig = { prependData: `@import "@/styles/variables";`, includePaths: [path.join("@", "styles")], }, + images: { + remotePatterns: [ + { + protocol: "https", + hostname: "picsum.photos", + port: "", + pathname: "/**", + }, + ], + }, }; export default nextConfig; diff --git a/front/src/app/(home)/layout.tsx b/front/src/app/(home)/layout.tsx index ea1c4bc..24abadc 100644 --- a/front/src/app/(home)/layout.tsx +++ b/front/src/app/(home)/layout.tsx @@ -1 +1 @@ -export { ApplicationLayout as default } from "@/modules/common/layouts/application/application.layout"; +export { HomeLayout as default } from "@/modules/common/layouts/home"; diff --git a/front/src/app/(home)/page.tsx b/front/src/app/(home)/page.tsx index a060dd5..7f16d18 100644 --- a/front/src/app/(home)/page.tsx +++ b/front/src/app/(home)/page.tsx @@ -1,4 +1,3 @@ -import { SignInWidget } from "@/modules/auth/components/sign-in/sign-in.widget"; import ThemeSwitcher from "@/modules/common/theme-switcher"; export default function Home() { @@ -14,7 +13,6 @@ export default function Home() { > Main page - ); } diff --git a/front/src/app/auth/log-in/page.tsx b/front/src/app/auth/log-in/page.tsx new file mode 100644 index 0000000..2e19f64 --- /dev/null +++ b/front/src/app/auth/log-in/page.tsx @@ -0,0 +1 @@ +export { LogInView as default } from "@/modules/auth/views/log-in/log-in.view"; diff --git a/front/src/middleware.ts b/front/src/middleware.ts new file mode 100644 index 0000000..859e5bd --- /dev/null +++ b/front/src/middleware.ts @@ -0,0 +1,17 @@ +import { withAuth } from "next-auth/middleware"; +import { authOptions } from "./modules/auth/configs/auth.options"; + +export default withAuth({ + pages: authOptions.pages, + callbacks: { + authorized({ req, token }) { + if (token) return true; + const pathname = req.nextUrl.pathname; + return ( + pathname.startsWith("/_next/") || + pathname.startsWith("/favicon.ico") || + pathname.startsWith("/assets/") + ); + }, + }, +}); diff --git a/front/src/modules/auth/components/sign-in/sign-in.module.scss b/front/src/modules/auth/components/log-in/log-in.module.scss similarity index 99% rename from front/src/modules/auth/components/sign-in/sign-in.module.scss rename to front/src/modules/auth/components/log-in/log-in.module.scss index c95014b..27fd6af 100644 --- a/front/src/modules/auth/components/sign-in/sign-in.module.scss +++ b/front/src/modules/auth/components/log-in/log-in.module.scss @@ -1,5 +1,6 @@ .container { max-width: 20em; + height: fit-content; display: flex; flex-direction: column; diff --git a/front/src/modules/auth/components/sign-in/sign-in.widget.tsx b/front/src/modules/auth/components/log-in/log-in.widget.tsx similarity index 81% rename from front/src/modules/auth/components/sign-in/sign-in.widget.tsx rename to front/src/modules/auth/components/log-in/log-in.widget.tsx index 8047d15..02cfaf8 100644 --- a/front/src/modules/auth/components/sign-in/sign-in.widget.tsx +++ b/front/src/modules/auth/components/log-in/log-in.widget.tsx @@ -1,18 +1,18 @@ "use client"; -import { FormEvent, useState } from "react"; -import styles from "./sign-in.module.scss"; +import { FormEvent, useEffect, useState } from "react"; +import styles from "./log-in.module.scss"; import { signIn, useSession } from "next-auth/react"; +import { useRouter } from "next/navigation"; -type SingInWidgetsProps = { +type LogInWidgetsProps = { afterSuccess?: Function; }; -export const SignInWidget: React.FC = ({ - afterSuccess, -}) => { +export const LogInWidget: React.FC = ({ afterSuccess }) => { const { data } = useSession(); + const router = useRouter(); const [loginStatus, setLoginStatus] = useState< "idle" | "check" | "confirm" | "error" @@ -41,9 +41,15 @@ export const SignInWidget: React.FC = ({ } }; + useEffect(() => { + if (loginStatus === "confirm") { + router.push("/"); + } + }, [loginStatus]); + return (
-

Sign in

+

Log in