Next.js 16: La trampa de seguridad que nadie ve venir
Asegura tus Server Actions con un chequeo de autenticación crucial.
Las Server Actions en Next.js 16 son poderosas, pero si no validas la autenticación, dejas la puerta abierta a accesos indebidos.
El truco
// ANTES (mal)
export async function POST(request) {
const data = await request.json();
// Procesar datos directamente
return NextResponse.json({ success: true });
}
// DESPUÉS (bien)
export async function POST(request) {
// Verificar autenticación
const isAuthenticated = await checkAuth(request);
if (!isAuthenticated) {
return NextResponse.json({ error: 'No autorizado' }, { status: 401 });
}
const data = await request.json();
// Procesar datos si está autenticado
return NextResponse.json({ success: true });
}
async function checkAuth(request) {
// Implementar lógica de verificación
// Ejemplo: verificar token en encabezados
const token = request.headers.get('authorization');
return token && token === "tu_token_seguro";
}
Este snippet asegura que solo los usuarios autenticados puedan ejecutar acciones en el servidor. La función checkAuth comprueba el token de autorización en los encabezados de la solicitud antes de procesar cualquier dato. Si el token es inválido o está ausente, se devuelve un estado 401, prohibiendo el acceso no autorizado.
Implementar un chequeo de autenticación robusto es esencial para proteger tus Server Actions de Next.js. No caigas en la trampa de omitirlo.