0

我有点卡在这里 - 我可以写一个黑客来解决这个问题,但想知道是否有合适的方法来做到这一点。

我正在使用 Zend ACL 来指定哪些页面受到保护并需要身份验证。例如,如果“UploadVideo.php”是一个受保护的页面 - 当用户单击链接以访问该页面时 - 他将被带到登录页面,并且在登录后被重定向回 UploadVideo.php 页面。所以这一切都得到了照顾并且工作正常。

现在在另一个页面上 - 我有一个类似“投票”按钮的东西。用户只有在登录后才能投票。

案例 1 当用户登录时 - 他点击投票按钮 - 我正在使用 Jquery 通过以下方式调用操作: $.post('/video/vote', {video_id:video_id}, function(data) { if(data=="OK") ..... } 现在 /video/vote 是受保护的资源,并且由于用户已登录 - 投票操作被调用这会增加投票计数并发送回“OK”消息,并且页面会使用新的投票计数动态更新。

案例 2 用户未登录 - 他点击投票按钮 - 因为页面受到保护 - 通过变量“数据”中的 ajax 调用返回登录页面 理想情况下,当用户未登录时 - ajax 调用应该不会发生 - 用户应该被重定向到登录页面 - 登录后他应该被重定向到 /video/vote 动作,这将增加投票计数 - 最后用投票按钮发送回页​​面

我该如何处理。我可以编写一些技巧并检查用户是否已登录,并根据此决定是否进行 ajax 调用或重定向用户,但这是最好的方法。

我不知道我是否已经清楚地解释了这个问题。

谢谢你的时间

4

1 回答 1

1

我不知道可能有一种 Zend 特定的方法,但我想不出比这更简单(和更清洁)的方法

  • logged_in根据用户是否登录填充 Javascript 变量

  • 检查logged_in用户何时单击投票按钮;提供重定向,如果他们不是

  • 使用包含当前页面 URL 的目标变量重定向到登录页面(为此我敢肯定,存在 Zend Framework 特定的方式)

  • 显然,保持所有服务器端检查到位。这只是为了方便。

于 2010-11-18T19:12:20.943 回答