Files
BizOne-portal/frontend/src/app/dashboard/settings/security/page.tsx

50 lines
1.8 KiB
TypeScript

import { DashboardShell } from '../../../../components/dashboard-shell';
import { SecuritySessionCard } from '../../../../components/security-session-card';
import { TwoFactorSettingsCard } from '../../../../components/two-factor-settings-card';
import { fetchCurrentSession, fetchTwoFactorStatus } from '../../../../lib/api';
import { requireAuthToken } from '../../../../lib/auth';
export default async function SecuritySettingsPage() {
const token = await requireAuthToken();
const [status, session] = await Promise.all([fetchTwoFactorStatus(token), fetchCurrentSession(token)]);
return (
<DashboardShell currentPath="/dashboard/settings/security">
<section className="page-header">
<div>
<p className="page-eyebrow">Settings</p>
<h1 className="page-heading">Security</h1>
<p className="page-copy">
Hardening auth production, termasuk TOTP, backup recovery codes, dan sesi admin yang lebih aman.
</p>
</div>
</section>
<section className="dashboard-two-column">
<article className="surface-card">
<div className="metric-stack">
<div>
<strong>JWT Auth</strong>
<span>Login dan protected routes aktif</span>
</div>
<div>
<strong>Webhook Verification</strong>
<span>Verify token, shared secret, dan Meta signature tersedia</span>
</div>
<div>
<strong>Queue Retry</strong>
<span>Webhook jobs dapat di-retry dan tercatat di logs</span>
</div>
</div>
</article>
<TwoFactorSettingsCard status={status} />
</section>
<section className="dashboard-two-column-bottom">
<SecuritySessionCard session={session} />
</section>
</DashboardShell>
);
}