refactor: replace custom authentication middleware with NextAuth, remove unused authentication pages, and update matcher configuration

This commit is contained in:
2025-03-23 18:06:27 +05:00
parent 020d74c5e2
commit 32bb01b656
8 changed files with 34 additions and 37 deletions

View File

@ -0,0 +1,23 @@
import LoginForm from "@/components/auth/login-form";
import { auth } from "@/app/auth";
import { headers } from "next/headers";
import Image from "next/image";
import { redirect } from "next/navigation";
import React from "react";
export default async function LoginPage() {
return (
<div className="dark:bg-black w-full h-screen flex items-center justify-center font-sans">
<div className="flex flex-col items-center justify-center w-full h-full ">
<Image alt="Sar Link Logo" src="/logo.png" width={100} height={100} />
<div className="mt-4 flex flex-col items-center justify-center">
<h4 className="font-bold text-xl text-gray-600">SAR Link Portal</h4>
<p className="text-gray-500">
Pay for your devices and track your bills.
</p>
</div>
<LoginForm />
</div>
</div>
);
}

View File

@ -0,0 +1,33 @@
import SignUpForm from "@/components/auth/signup-form";
import Image from "next/image";
import { redirect } from "next/navigation";
export default async function SignupPage({
searchParams,
}: {
searchParams: Promise<{ phone_number: string }>;
}) {
const atolls = await getAtollsWithIslands();
console.log(atolls.data);
const phone_number = (await searchParams).phone_number;
if (!phone_number) {
return redirect("/login");
}
return (
<div className="dark:bg-black w-full h-screen flex items-center justify-center font-sans">
<div className="flex flex-col items-center justify-center w-full h-full ">
<Image priority alt="Sar Link Logo" src="/logo.png" width={100} height={100} style={{ width: "auto", height: "auto" }} />
<div className="mt-4 flex flex-col items-center justify-center">
<h4 className="font-bold text-xl text-gray-600">SAR Link Portal</h4>
<p className="text-gray-500">
Pay for your devices and track your bills.
</p>
</div>
<SignUpForm atolls={atolls.data} />
</div>
</div>
);
}

View File

@ -0,0 +1,34 @@
import VerifyOTPForm from "@/components/auth/verify-otp-form";
import Image from "next/image";
import { redirect } from "next/navigation";
import React from "react";
export default async function VerifyOTP({
searchParams,
}: {
searchParams: Promise<{ phone_number: string }>;
}) {
const phone_number = (await searchParams).phone_number;
if (!phone_number) {
return redirect("/login");
}
console.log(
"phone number from server page params (verify otp page)",
phone_number,
);
return (
<div className="bg-gray-100 dark:bg-black w-full h-screen flex items-center justify-center font-sans">
<div className="flex flex-col items-center justify-center w-full h-full ">
<Image alt="Sar Link Logo" src="/logo.png" width={100} height={100} />
<div className="mt-4 flex flex-col items-center justify-center">
<h4 className="font-bold text-xl text-gray-600">SAR Link Portal</h4>
<p className="text-gray-500">
Pay for your devices and track your bills.
</p>
</div>
<VerifyOTPForm phone_number={phone_number} />
</div>
</div>
);
}