v0.5.173: OIDC state всегда, CSRF смонтирован, session.regenerate
This commit is contained in:
+3
-3
@@ -32,7 +32,7 @@ const { createAdminRouter } = require('./src/admin');
|
||||
const { pool } = require('./src/db');
|
||||
const { ensureSchema } = require('./src/db/schema');
|
||||
|
||||
function createV2Router() {
|
||||
function createV2Router({ generateCsrfToken, doubleCsrfProtection } = {}) {
|
||||
// Автосоздание таблиц v2_companies, v2_entries, v2_audit при старте
|
||||
ensureSchema(pool).catch(e => console.error('[v2:db] Schema error:', e.message));
|
||||
|
||||
@@ -102,10 +102,10 @@ function createV2Router() {
|
||||
});
|
||||
|
||||
// ── /v2/app — пользовательский CRUD (только с сессией) ──────────────
|
||||
router.use('/app', enhanceImpersonation, resolveContext, createUserRouter());
|
||||
router.use('/app', enhanceImpersonation, resolveContext, doubleCsrfProtection || ((req,res,next)=>next()), createUserRouter({ generateCsrfToken }));
|
||||
|
||||
// ── /v2/admin — админка: лимиты + аудит ──────────────────────────
|
||||
router.use('/admin', enhanceImpersonation, resolveContext, createAdminRouter());
|
||||
router.use('/admin', enhanceImpersonation, resolveContext, doubleCsrfProtection || ((req,res,next)=>next()), createAdminRouter({ generateCsrfToken }));
|
||||
|
||||
// ── GET /v2/ — редирект на /v2/app ──────────────────────────────────
|
||||
router.get('/', (req, res) => res.redirect('/v2/app'));
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
module.exports = {
|
||||
version: '0.5.172',
|
||||
version: '0.5.173',
|
||||
|
||||
// ── IAM ──────────────────────────────────────────────────────────────────
|
||||
iamUrl: process.env.V2_IAM_URL || 'https://auth-api.ngcloud.ru/api/v1/auth/user',
|
||||
|
||||
@@ -19,7 +19,7 @@ const crud = require('../crud');
|
||||
const q = require('../db/queries');
|
||||
const config = require('../config');
|
||||
|
||||
function createUserRouter() {
|
||||
function createUserRouter({ generateCsrfToken } = {}) {
|
||||
const router = express.Router();
|
||||
|
||||
// ── GET / — список записей + форма ──────────────────────────────────
|
||||
@@ -84,6 +84,7 @@ function createUserRouter() {
|
||||
user: templateUser,
|
||||
includeDeleted,
|
||||
version: config.version,
|
||||
csrfToken: generateCsrfToken ? generateCsrfToken(req, res) : '',
|
||||
});
|
||||
} catch (e) {
|
||||
res.status(500).send('<h2>Ошибка</h2><pre>' + e.message + '</pre><a href="/v2/app">Назад</a>');
|
||||
|
||||
Reference in New Issue
Block a user