我有点被困在这里 - 我可以写一个黑客来解决这个问题,但是想知道是否有正确的方法来做到这一点。
我使用Zend ACL来指定哪些页面受到保护并需要身份验证。 例如,如果“UploadVideo.php”是受保护的页面 - 当用户单击链接以访问该页面时 - 他将被带到登录页面,并在登录后重定向回UploadVideo.php页面。所以这一切都得到了妥善处理。
现在在另一页上 - 我有一个像“投票”按钮的东西。用户只有在登录后才能投票。
案例1
当用户登录时 - 他点击了投票按钮 - 我使用Jquery以下列方式调用操作:
$.post('/video/vote', {video_id:video_id}, function(data) {
if(data=="OK") .....
}
现在/视频/投票是受保护的资源,并且由于用户已登录 - 调用投票操作会增加投票计数并发回“OK”消息,并使用新的投票计数动态更新页面。
案例2 用户未登录 - 他点击了投票按钮 - 因为页面受到保护 - 登录页面通过变量“data”中的ajax调用返回 理想情况下,当用户未登录时 - 不应发生ajax调用 - 应将用户重定向到登录页面 - 登录后,他会被重定向到/ video / vote行动,这会增加投票次数 - 最后用投票按钮发送回页面
我该如何处理。我可以编写一些hacks并检查用户是否登录,并根据这个决定是否进行ajax调用或重定向用户,但这是最好的方法。
我不知道我是否清楚地解释了这个问题。
感谢您的时间
答案 0 :(得分:1)
可能有一种Zend特定的方式,我不知道,但我想不出比
更简单(和更清洁)的东西根据用户是否登录来填充Javascript变量logged_in
当用户点击投票按钮时,检查logged_in
;如果不是
使用包含当前页面URL的目标变量重定向到登录页面(对于 ,我确定,存在Zend Framework特定方式)
显然,保持所有服务器端检查。这只是为了方便。