// ═══════════════════════════════════════════════════════════════════════════════ // V2 — роутер (монтируется в server.js как /v2) // // СЕЙЧАС: показывает IAM-данные из сессии основного приложения. // Вход — через основной /login (production KC). // // ПОТОМ: будет свой /v2/login → /v2/callback через production KC. // Тогда заработает login() из src/auth/index.js. // ═══════════════════════════════════════════════════════════════════════════════ 'use strict'; const express = require('express'); const config = require('./src/config'); const auth = require('./src/auth'); function createV2Router() { const router = express.Router(); // ── GET /v2/login — редирект на основной вход ────────────────────────── // ⚠️ ВРЕМЕННО: использует старый OIDC основного приложения. // ПОТОМ: заменить на свой OIDC-поток через auth.buildAuthUrl(). router.get('/login', (req, res) => { res.redirect('/login?returnTo=' + encodeURIComponent('/v2/iam')); }); // ── GET /v2/iam — показать IAM-данные из сессии ──────────────────────── router.get('/iam', (req, res) => { const u = req.session && req.session.user; if (!u) { return res.send('

Нет данных

Сначала войдите.

'); } res.send(` V2 — IAM Response

✅ Данные IAM (v${config.version})

Email: ${u.email}

clientId: ${u.clientId} (W-номер)

Компания: ${u.companyName}

isAdmin: ${u.isAdmin}

ФИО: ${u.fio || '—'}

Компаний: ${u.allClientIds ? u.allClientIds.length : 0} — ${(u.allClientIds || []).join(', ')}

${u.isImpersonated ? '

⚠️ Имперсонация: ' + u.originalUserEmail + ' → ' + u.email + '

' : ''}

session.user (полный объект)

${JSON.stringify(u, null, 2)}

Выйти из V2 | Основное приложение

`); }); // ── GET /v2/ — алиас на /v2/iam ───────────────────────────────────────── router.get('/', (req, res) => res.redirect('/v2/iam')); // ── GET /v2/logout ─────────────────────────────────────────────────────── router.get('/logout', (req, res) => { res.redirect('/logout'); }); return router; } module.exports = { createV2Router };