Назад к вопросам
Junior
381
questionbank
Какой запрос необходимо выполнить для подтверждения регистрации пользователя?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Обычно это 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' });
}
});