Domina las Server Actions de Next.js 16 para evitar fallos de seguridad
Implementa verificaciones de autenticación en Server Actions para proteger tus aplicaciones Next.js.
Las Server Actions de Next.js 16, sin autenticación adecuada, pueden abrir puertas a fallos de seguridad.
El truco
ANTES (mal):
// pages/api/handleForm.js
export default async function handleForm(req, res) {
const { username, password } = req.body;
// Procesa los datos sin verificar autenticación
res.status(200).json({ message: 'Datos procesados' });
}
DESPUÉS (bien):
// pages/api/handleForm.js
import { getSession } from 'next-auth/client';
export default async function handleForm(req, res) {
const session = await getSession({ req });
if (!session) {
return res.status(401).json({ error: 'No estás autenticado' });
}
const { username, password } = req.body;
// Ahora procesa los datos con autenticación verificada
res.status(200).json({ message: 'Datos procesados' });
}
Al implementar verificaciones de autenticación en tus Server Actions, aseguras que solo los usuarios autenticados puedan interactuar con determinadas rutas. Utilizando getSession de next-auth, puedes verificar de manera sencilla si una sesión existe antes de proceder. Esto añade una capa de seguridad que previene accesos no autorizados y potenciales fallos de seguridad.
No dejes tus Server Actions desprotegidas; usa autenticación para salvaguardar tus aplicaciones.