debug: /debug-session shows last audit log entries (impersonated_by)
This commit is contained in:
@@ -80,15 +80,22 @@ async function start() {
|
|||||||
app.get('/healthz', (req, res) => res.send('OK'));
|
app.get('/healthz', (req, res) => res.send('OK'));
|
||||||
|
|
||||||
// 🔧 DEBUG: показать IAM-данные из сессии (убрать после теста!)
|
// 🔧 DEBUG: показать IAM-данные из сессии (убрать после теста!)
|
||||||
app.get('/debug-session', (req, res) => {
|
app.get('/debug-session', async (req, res) => {
|
||||||
if (!req.session || !req.session.user) return res.json({ error: 'no session' });
|
if (!req.session || !req.session.user) return res.json({ error: 'no session' });
|
||||||
const { token, idToken, ...safe } = req.session;
|
const { token, idToken, ...safe } = req.session;
|
||||||
|
// Последняя запись аудита для проверки impersonated_by
|
||||||
|
let lastAudit = null;
|
||||||
|
try {
|
||||||
|
const { getAudit } = require('./src/queries');
|
||||||
|
const audit = await getAudit(null);
|
||||||
|
lastAudit = audit.slice(0, 3);
|
||||||
|
} catch(e) { lastAudit = 'error: ' + e.message; }
|
||||||
res.json({
|
res.json({
|
||||||
user: req.session.user,
|
user: req.session.user,
|
||||||
hasToken: !!token,
|
hasToken: !!token,
|
||||||
tokenPreview: token ? token.slice(0, 50) + '...' : null,
|
tokenPreview: token ? token.slice(0, 50) + '...' : null,
|
||||||
tokenPayload: token ? (() => { try { const p = JSON.parse(Buffer.from(token.split('.')[1], 'base64url').toString()); return { iss: p.iss, sub: p.sub, email: p.email, ClientID: p.ClientID, iat: p.iat }; } catch(e) { return 'decode error'; } })() : null,
|
tokenPayload: token ? (() => { try { const p = JSON.parse(Buffer.from(token.split('.')[1], 'base64url').toString()); return { iss: p.iss, sub: p.sub, email: p.email, ClientID: p.ClientID, iat: p.iat }; } catch(e) { return 'decode error'; } })() : null,
|
||||||
});
|
lastAudit,
|
||||||
});
|
});
|
||||||
|
|
||||||
// JWKS endpoint для валидации токенов внешними сервисами (только в mock-режиме)
|
// JWKS endpoint для валидации токенов внешними сервисами (только в mock-режиме)
|
||||||
|
|||||||
Reference in New Issue
Block a user