Встречается на собеседованиях • сегодня

Как сделать отправление refresh токена только на запрос от refresh cookie

Для этого можно использовать флаг httpOnly и secure для refresh токена в куках, чтобы он не был доступен через JavaScript. При этом access токен отправляется в заголовке запроса.

Пример реализации на Express.js:

javascript
// Установка refresh токена в куки
res.cookie('refreshToken', refreshToken, {
  httpOnly: true,
  secure: true, // Только для HTTPS
  sameSite: 'strict', // Защита от CSRF
  maxAge: 30 * 24 * 60 * 60 * 1000 // 30 дней
});

// Проверка refresh токена из куки при запросе на /refresh
app.post('/refresh', (req, res) => {
const refreshToken = req.cookies.refreshToken;
if (!refreshToken) return res.sendStatus(401);

// Проверка токена и выдача нового access токена
jwt.verify(refreshToken, process.env.REFRESH_SECRET, (err, user) => {
if (err) return res.sendStatus(403);
const newAccessToken = generateAccessToken(user);
res.json({ accessToken: newAccessToken });
});
});

text

Таким образом, refresh токен доступен только серверу через куки, а клиент получает новый access токен в ответе.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы