# Laravel/Inertia OTP-авторизация и claim промокодов (MLH / Hacktoberfest) Реверс Laravel+Inertia+Vite сайтов (www.mlh.com) и Next.js API-фронтов (hacktoberfest.com → hacktoberfest-api.mlh.com). Проверено E2E: OTP sign-in, OAuth, offers, claim 2 из 4 кодов. ## 1. Распознавание стека и чтение props - Страница Inertia: весь стейт в ``. Парсить regex `type="application/json">(.*?)` + `html.unescape()` ПЕРЕД `json.loads` — атрибут HTML-экранирован. - Ключевые props: `component`, `version`, `isSignedIn`, `currentUser`, `errors`, `flash`, `apiBaseUrl`, `authBaseUrl`. - Vite-манифест: `https:///vite/.vite/manifest.json` → маппинг `pages/...tsx -> assets/...js`. Искать по имени компонента из props (напр. `Events/Partners/PromoCodes/Redeem.tsx` → `Redeem-*.js`) — в чанке видны точные URL, data-testid кнопок и payload форм. ## 2. Inertia POST — правила - Заголовки: `X-Inertia: true`, `X-Inertia-Version: ` (НЕ из data-version атрибута — его может не быть), `X-CSRF-Token: `, `Referer: `, `Content-Type: application/json`. - Ответ на POST = ЧИСТЫЙ JSON (component+props), не HTML — парсить `json.loads(resp)`, а не искать `