الخيار الأشهر: Auth.js (NextAuth)
npm install next-auth
// auth.ts
import NextAuth from "next-auth";
import GitHub from "next-auth/providers/github";
export const { handlers, auth, signIn, signOut } = NextAuth({
providers: [GitHub],
});
معالِج المسار
// app/api/auth/[...nextauth]/route.ts
import { handlers } from "@/auth";
export const { GET, POST } = handlers;
قراءة الجلسة على الخادم
import { auth } from "@/auth";
export default async function Page() {
const session = await auth();
if (!session) return <p>سجّل الدخول أوّلًا</p>;
return <p>أهلًا {session.user?.name}</p>;
}
أزرار الدخول/الخروج
import { signIn, signOut } from "@/auth";
<form action={async () => { "use server"; await signIn("github"); }}>
<button>دخول عبر GitHub</button>
</form>
💡 احمِ المسارات عبر
auth()في الصفحة أو عبر الوسيط (الدرس السابق).
🎯 التالي: قواعد البيانات.