У меня есть система голосования. Я хочу разрешить зарегистрированным пользователям голосовать, отклонить это для незарегистрированных, для чего я хотел бы показать всплывающее окно.
Код моего всплывающего окна: всплывающее окно будет отображаться только тогда, когда пользователь не вошел в систему, только после нажатия кнопки в противном случае AJAX отправит данные в серверную часть. Это всплывающее окно Bootstrap, которое будет работать с идентификатором всплывающего окна.
Мой AJAX маршрут: это мой AJAX для нажатия кнопки, когда пользователь нажимает на него, отправляет некоторый запрос на соответствующий маршрут
$('body').on('click', '#upvote', event => {
const id = event.target.parentElement.getAttribute('data-id');
upvoteMessage(id);
})
function upvoteMessage(id) {
let userPhoto = STORE.photos.find(photo => {
return photo._id == id;
});
$.ajax({
url: '/' + id + '/upvote',
type: 'patch',
contentType: 'application/json',
headers: {
authorization: `Bearer ${window.localStorage.token}`
}
})
.done(res => {
STORE.update(res.photo);
renderPhotos();
})
}
Наконец, мой маршрут на сервере: это маршрут к действию. Он будет вызываться, когда пользователь нажимает кнопку, и это произойдет, только если он уже вошел в систему.
У меня есть система голосования, мне нужен пользователь, который вошел в систему, может голосовать, а в противном случае не может голосовать. Я хочу показать всплывающее окно входа в систему, если кто-либо попытается проголосовать без входа в систему.
const alreadyUpvoted = photos.upvoted.includes(req.user.id);
if (alreadyUpvoted) {
photos.voteScore--;
photos.downvoted.push(req.user.id);
photos.save()
.then(photos => {
return res.status(200).json({photos});
})
}
const alreadyDownvoted = photos.downvoted.includes(req.user.id);
if (alreadyDownvoted) {
let _downvoted = photos.downvoted.filter(id => id !== req.user.id);
photos.downvoted = _downvoted;
}
photos.voteScore++;
photos.upvoted.push(req.user.id);
photos.save()
.then(photos => {
return res.status(200).json({photos});
})
})
.catch(err => {
res.status(500).json({error: err});
})
}
Я хочу показать всплывающее окно входа в систему при нажатии кнопки, если он не является пользователем, если он является пользователем и уже вошел в систему он может щелкнуть, и он вызовет маршрут, может выполнить действие без всплывающего окна входа в систему. Могу ли я добиться этого из внутреннего интерфейса, если нет, как я могу сделать это из внешнего интерфейса?
В качестве угрозы безопасности из внешнего интерфейса я хочу реализовать его из внутреннего интерфейса Мне нужно решение, как я могу отправить выше всплывающий код из серверной части. Насколько я знаю, я могу отправить страницу HTML и переменные из серверной части, но как я могу отправить конкретный div, например всплывающее окно. У меня есть система голосования, мне нужен пользователь, который вошел в систему, может голосовать, а в противном случае не может голосовать. Я хочу показать всплывающее окно входа в систему, если кто-нибудь попытается проголосовать без входа в систему.