bump 0.5.30 — restore state check, clean code
This commit is contained in:
+5
-11
@@ -32,15 +32,11 @@ function createRouter({ auth, doubleCsrfProtection, generateCsrfToken, authLimit
|
||||
router.get('/callback', async (req, res) => {
|
||||
const { code, state } = req.query;
|
||||
|
||||
// ⚠️ ВРЕМЕННО: проверка state отключена для тестирования (2026-06-09)
|
||||
// 🔮 Вернуть когда заработает SSO на managed
|
||||
// Проверка state (защита от CSRF на callback)
|
||||
// if (!state || state !== req.session.oidcState) {
|
||||
// return res.status(403).send('Invalid state parameter');
|
||||
// }
|
||||
// delete req.session.oidcState;
|
||||
|
||||
if (req.session) delete req.session.oidcState;
|
||||
if (!state || state !== req.session.oidcState) {
|
||||
return res.status(403).send('Invalid state parameter');
|
||||
}
|
||||
delete req.session.oidcState;
|
||||
|
||||
if (!code) {
|
||||
return res.status(400).send('Missing authorization code');
|
||||
@@ -48,9 +44,7 @@ function createRouter({ auth, doubleCsrfProtection, generateCsrfToken, authLimit
|
||||
|
||||
try {
|
||||
// Обмен code на токен (через IAM / Keycloak)
|
||||
const tokenData = await auth.exchangeCode(code).catch(e => {
|
||||
throw new Error('Code exchange failed: ' + (e.message || e) + ' [KC_BASE_URL=' + process.env.KC_BASE_URL + ', code=' + (code || '').slice(0, 8) + '...]');
|
||||
});
|
||||
const tokenData = await auth.exchangeCode(code);
|
||||
const accessToken = tokenData.accessToken;
|
||||
|
||||
if (!accessToken) throw new Error('No access_token in response');
|
||||
|
||||
Reference in New Issue
Block a user