Нужно ли каждый раз слать логин и пароль при авторизации на стороннем сервисе

«Нужно ли каждый раз слать логин и пароль при авторизации на стороннем сервисе» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, отправлять логин и пароль при каждом запросе небезопасно. Вместо этого после успешной аутентификации сервер возвращает токен (обычно JWT), который клиент сохраняет (например, в localStorage или cookies) и отправляет в заголовке Authorization при последующих запросах.

Пример:

// После успешного входа
const response = await fetch('/login', {
  method: 'POST',
  body: JSON.stringify({ login, password })
});
const { token } = await response.json();
localStorage.setItem('token', token);

// Далее в запросах
const token = localStorage.getItem('token');
fetch('/protected', {
  headers: {
    'Authorization': `Bearer ${token}`
  }
});

Преимущества:

  • Безопасность (пароль не передается постоянно)
  • Stateless-архитектура
  • Контроль доступа (можно отозвать токен)