"use server"; import { cookies } from "next/headers"; import { redirect } from "next/navigation"; import { Account, Client } from "appwrite"; import { SESSION_COOKIE } from "@/lib/auth"; const endpoint = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT!; const projectId = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID!; export type LoginState = { error?: string }; export async function loginAction( _prev: LoginState | undefined, formData: FormData, ): Promise { const email = String(formData.get("email") ?? "").trim(); const password = String(formData.get("password") ?? ""); if (!email || !password) return { error: "E-posta ve şifre zorunlu" }; try { const client = new Client().setEndpoint(endpoint).setProject(projectId); const account = new Account(client); const session = await account.createEmailPasswordSession({ email, password }); const store = await cookies(); store.set(SESSION_COOKIE, session.secret, { httpOnly: true, sameSite: "lax", secure: process.env.NODE_ENV === "production", path: "/", expires: new Date(session.expire), }); } catch (err) { const msg = err instanceof Error ? err.message : "Giriş başarısız"; return { error: msg }; } redirect("/admin"); } export async function logoutAction() { const store = await cookies(); store.delete(SESSION_COOKIE); redirect("/admin/login"); }