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

Спроектируй взаимодействие с API при двухфакторной аутентификации

Для 2FA обычно используется следующий flow:

  1. Пользователь вводит логин/пароль → POST /auth/login с {email, password}
  2. Сервер отвечает 401 с { requires2FA: true } и временным токеном
  3. Фронт показывает поле для кода из SMS/приложения
  4. Пользователь вводит код → POST /auth/verify-2fa с { tempToken, code }
  5. При успехе сервер возвращает 200 с JWT токеном

Пример на React:

jsx
async function login(email, password) {
  const res = await fetch('/auth/login', {
    method: 'POST',
    body: JSON.stringify({ email, password })
  });
  
  if (res.status === 401) {
    const { requires2FA, tempToken } = await res.json();
    if (requires2FA) return { requires2FA, tempToken };
  }
  
  return await res.json();
}

async function verify2FA(tempToken, code) {
  const res = await fetch('/auth/verify-2fa', {
    method: 'POST',
    body: JSON.stringify({ tempToken, code })
  });
  return await res.json();
}

Важно:

  • Временный токен должен быть short-lived (5-10 мин)
  • Предусмотреть повторную отправку кода
  • Обрабатывать ошибки неверного кода
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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