Ответ
Нет, отправлять логин и пароль при каждом запросе небезопасно. Вместо этого после успешной аутентификации сервер возвращает токен (обычно 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-архитектура
- Контроль доступа (можно отозвать токен)