Я застрял здесь - я могу написать хак, чтобы обойти это, но мне было интересно, есть ли правильный способ сделать это.
Я использую Zend ACL, чтобы указать, какие страницы защищены и требуют аутентификации.
Например, если «UploadVideo.php» является защищенной страницей - когда пользователь нажимает на ссылку для доступа к этой странице - он перенаправляется на страницу входа и после входа перенаправляется обратно на страницу UploadVideo.php. Так что об этом все позаботились и прекрасно работают.
Теперь на другой странице - у меня есть что-то вроде кнопки «ГОЛОСОВАТЬ». Пользователь может голосовать только в том случае, если он вошел в систему.
Дело 1
Когда пользователь вошел в систему - он нажимает кнопку голосования - я использую Jquery для вызова действия следующим образом:
$.post('/video/vote', {video_id:video_id}, function(data) {
if(data=="OK") .....
}
Теперь / видео / голосование является защищенным ресурсом, и поскольку пользователь вошел в систему - вызывается действие голосования, которое увеличивает количество голосов и возвращает сообщение «ОК», и страница динамически обновляется с новым счетом голосов.
Дело 2
Пользователь не вошел в систему - он нажимает на кнопку голосования - поскольку страница защищена - страница входа возвращается через вызов ajax в переменной «data»
В идеале, когда пользователь не вошел в систему - вызов ajax не должен происходить
- пользователь должен быть перенаправлен на страницу входа
- после входа он должен быть перенаправлен на действие / video / голосования, которое увеличит количество голосов
- и наконец отправили обратно на страницу с кнопкой голосования
Как мне справиться с этим. Я могу написать несколько хаков и проверить, вошел ли пользователь в систему или нет, и в зависимости от этого решить, делать ли ajax-вызов или перенаправлять пользователя, но это лучший способ сделать это.
Я не знаю, ясно ли я объяснил проблему.
Спасибо за ваше время