Какой запрос необходимо выполнить для подтверждения регистрации пользователя?

Обычно это PUT или POST запрос по адресу, содержащему токен подтверждения.

Короткий ответ

Что ответить на собеседовании

Обычно это PUT или POST запрос по адресу, содержащему токен подтверждения.

Подробный разбор

Ответ с пояснениями

Обычно это PUT или POST запрос по адресу, содержащему токен подтверждения.

Пример:

// На стороне клиента
fetch('/api/auth/confirm-email', {
  method: 'PUT', // или POST
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ token: 'полученный_токен_из_ссылки' })
})
.then(response => {
  if (!response.ok) {
    throw new Error('Ошибка подтверждения');
  }
  return response.json();
})
.then(data => {
  console.log('Пользователь подтвержден:', data);
})
.catch(error => {
  console.error('Ошибка:', error);
});
// На стороне сервера (Node.js с Express)
app.put('/api/auth/confirm-email', async (req, res) => {
  const { token } = req.body;

  if (!token) {
    return res.status(400).json({ message: 'Токен не предоставлен' });
  }

  try {
    // Найти пользователя по токену
    const user = await User.findOne({ confirmationToken: token });

    if (!user) {
      return res.status(404).json({ message: 'Неверный или истекший токен' });
    }

    // Установить флаг подтверждения и очистить токен
    user.isConfirmed = true;
    user.confirmationToken = null; // Очистить токен после использования
    user.confirmationTokenExpires = null; // Очистить срок действия токена
    await user.save();

    res.status(200).json({ message: 'Еmail успешно подтвержден' });

  } catch (error) {
    console.error('Ошибка подтверждения email:', error);
    res.status(500).json({ message: 'Ошибка сервера при подтверждении email' });
  }
});

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее