feat: integrate Cloudinary image upload, Instagram Feed, and fix Next.js warnings

This commit is contained in:
2026-06-09 21:28:45 +03:00
parent 2b3392dcb1
commit a4ad9344a0
52 changed files with 4300 additions and 263 deletions
+44
View File
@@ -0,0 +1,44 @@
"use server";
import { prisma } from "@/lib/prisma";
import bcrypt from "bcryptjs";
import { signToken, setAuthCookie, removeAuthCookie } from "@/lib/auth";
import { redirect } from "next/navigation";
export async function login(formData: FormData) {
try {
const email = formData.get("email") as string;
const password = formData.get("password") as string;
if (!email || !password) {
return { success: false, error: "Lütfen email ve şifre giriniz." };
}
const admin = await prisma.admin.findUnique({
where: { email },
});
if (!admin) {
return { success: false, error: "Geçersiz e-posta veya şifre." };
}
const isMatch = await bcrypt.compare(password, admin.password);
if (!isMatch) {
return { success: false, error: "Geçersiz e-posta veya şifre." };
}
// Başarılı giriş, token oluştur ve cookie'ye kaydet
const token = await signToken({ id: admin.id, email: admin.email, name: admin.name });
await setAuthCookie(token);
return { success: true };
} catch (error) {
console.error("Login error:", error);
return { success: false, error: "Giriş yapılırken beklenmeyen bir hata oluştu." };
}
}
export async function logout() {
await removeAuthCookie();
redirect("/admin/login");
}