import type { Metadata } from 'next' import { setRequestLocale } from 'next-intl/server' import { redirect } from '@/i18n/navigation' import { getSession } from '@/lib/session' import { getSecurityHistory } from '@/lib/security-history' import { wowAccountLabel } from '@/lib/bnet' import { PageShell } from '@/components/PageShell' import { ServiceBox } from '@/components/ServiceBox' export const dynamic = 'force-dynamic' export const metadata: Metadata = { title: 'Historial de seguridad' } /** Fecha en formato HH:MM:SS DD-MM-YYYY (como el diseño). */ function fmt(d: Date): string { const p = (n: number) => String(n).padStart(2, '0') return `${p(d.getHours())}:${p(d.getMinutes())}:${p(d.getSeconds())} ${p(d.getDate())}-${p(d.getMonth() + 1)}-${d.getFullYear()}` } /** Celda «Usuario»: cuenta de juego (WOW1) + cuenta Battle.net (email) debajo. */ function UserCell({ label, bnet }: { label: string; bnet: string }) { return ( {label} {bnet && ( <>
{bnet} )} ) } export default async function SecurityHistoryPage({ params }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const session = await getSession() if (!session.bnetId) redirect({ href: '/login', locale }) if (!session.username) redirect({ href: '/select-account', locale }) const bnetEmail = session.bnetEmail || '' const displayUser = wowAccountLabel(session.username || '') // «15#1» → «WOW1» const { activity, realm, web } = await getSecurityHistory(session.accountId!, displayUser, bnetEmail) return (

Aquí verás información de actividad y conexiones de tu cuenta.

Cada tabla tiene una explicación detallada de la información provista.

Si desconoces algún tipo de actividad te recomendamos cambiar la contraseña de tu cuenta y del correo ligado a la misma.


Historial de actividad

Muestra actividad de seguridad de la cuenta, como por ejemplo cambios de contraseña.


Historial de conexiones (Reino)

Muestra un historial de conexiones al reino sólo cuando la IP ha cambiado. No es un historial de cada conexión.


Historial de conexiones (Web)

Muestra un historial de cada conexión al sitio web.

{/* Historial de actividad */}

Historial de actividad

{activity.length === 0 ? (
No hay actividad
) : ( {activity.map((a, i) => ( ))}
Usuario Acción IP Fecha
{a.action} {a.ip} {fmt(a.date)}
)}
{/* Historial de conexiones (Reino) */}

Historial de conexiones (Reino)

{realm.length === 0 ? (
No hay conexiones
) : ( {realm.map((c, i) => ( ))}
IP Fecha
{c.ip} {fmt(c.date)}
)}
{/* Historial de conexiones (Web) */}

Historial de conexiones (Web)

{web.length === 0 ? (
No hay conexiones
) : ( {web.map((c, i) => ( ))}
Usuario Estado IP Fecha
{c.status} {c.ip} {fmt(c.date)}
)}
) }