import React from 'react'
import { createRoot } from 'react-dom/client'
import App from './App'
import './index.css'
const deny = (msg: string) => {
document.body.innerHTML = `
${msg}
`;
};
async function boot() {
const urlParams = new URLSearchParams(window.location.search);
const agenticToken = urlParams.get('agentic_token');
const legacyToken = urlParams.get('auth_token');
const activeToken = agenticToken || legacyToken;
if (!activeToken) {
// Check sessionStorage in case the user navigated away and back
const storedToken = sessionStorage.getItem('admin_auth_token');
if (!storedToken) {
deny('Invalid or missing admin access token.');
return;
}
// Token is in sessionStorage and was already validated - mount app directly
const root = document.getElementById('root');
if (!root) { deny('Unable to load admin app.'); return; }
createRoot(root).render();
return;
}
if (agenticToken) {
try {
const verifyRes = await fetch('https://api.mauth.mworld.cloud/mAuthAG/verifyToken', {
headers: { 'mAuthAgenticToken': agenticToken }
});
const verifyData = await verifyRes.json();
if (!verifyData.success) {
deny(`Unauthorized: ${verifyData.msg || 'Invalid agentic token'}`);
return;
}
localStorage.setItem('auth_token', agenticToken);
} catch (err) {
deny('Authentication service unavailable.');
return;
}
} else if (legacyToken) {
// Legacy hash-based validation
const data = new TextEncoder().encode(legacyToken);
const digest = await crypto.subtle.digest('SHA-256', data);
const hash = Array.from(new Uint8Array(digest))
.map((value) => value.toString(16).padStart(2, '0'))
.join('');
if (hash !== 'a3fe085c7881857775b34eba615865d844c2b732045f3851db78bf8b79365979') {
deny('Invalid or missing admin access token.');
return;
}
localStorage.setItem('auth_token', legacyToken);
}
// Persist token in sessionStorage so API calls work after React Router navigations
sessionStorage.setItem('admin_auth_token', activeToken);
const root = document.getElementById('root');
if (!root) {
deny('Unable to load admin app.');
return;
}
createRoot(root).render(
,
);
}
boot().catch(() => {
deny('Unable to validate admin access token.');
});