Проверяет понимание механизма единого входа (SSO) и того, как пользователь идентифицируется в нескольких приложениях без повторного ввода пароля.
SSO (Single Sign-On) — это механизм, при котором пользователь проходит аутентификацию один раз у доверенного провайдера идентификации (Identity Provider, IdP), а затем получает доступ к множеству приложений без повторного ввода учётных данных. Вместо того чтобы каждое приложение хранило пароль пользователя, они доверяют IdP и проверяют выданный им токен или сессию.
const jwt = require('jsonwebtoken');
function authenticate(req, res, next) {
const token = req.headers.authorization?.split(' ')[1];
if (!token) return res.status(401).send('No token');
try {
// Проверяем подпись токена, выданного IdP
const payload = jwt.verify(token, process.env.IDP_PUBLIC_KEY);
req.user = { id: payload.sub, email: payload.email };
next();
} catch (err) {
res.status(401).send('Invalid token');
}
}
SSO повышает удобство для пользователя и безопасность: пароль хранится только у IdP, а приложения получают лишь токены с ограниченным сроком жизни. Однако важно правильно настроить доверие между сервисами и защитить токены от кражи.
Итог: SSO стоит применять, когда есть несколько приложений с общей базой пользователей и требуется единая точка входа. Это упрощает управление доступом и снижает риск утечек паролей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию