【发布时间】:2013-09-11 19:53:05
【问题描述】:
我正在使用 cakephp-core 中的 AuthComponent。所以我使用 isAuthorized()-Method 来检查任何请求。 对于“正常”请求,这工作得很好——当 isAuthorized() 返回 false 时,用户被重定向到“他来自哪里”,并且使用 setFlash 我可以显示一条消息,授权问题是什么(如果我愿意的话)。
但是当涉及到 AJAX 请求时,这当然是没有意义的。然后响应是用户当前作为响应文本所在的页面...我更喜欢的是:如果在 ajax 调用上授权失败,则发送状态为 400(或其他)的响应,并且只发送消息“未授权”因为你不是管理员”(或其他)。
有没有简单的方法来实现这一点?
我想到的唯一解决方法是为所有 ajax 请求创建一个控制器。在它的 isAuthorized() 方法中,它会(如果授权失败)重定向到一个带有 1 个参数(失败消息)的操作,并且该操作只呈现此消息。但是(更不用说我根本不知道这是否会起作用,如果可能的话从 isAuthorized() 重定向,但我想它会)这对我来说似乎很……肮脏/草率。那么有人知道更简单/更清洁的方法吗?
我会很高兴有任何想法!
【问题讨论】:
标签: php jquery ajax cakephp authorization