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