我是CakePHP的新手,使用的是2.7.5版本。
我按照教程创建了一个基本的REST服务。
我现在使用基本的auth教程保护它们。
现在,我有一个针对此REST服务的AngularJS应用程序,但需要一种方法来提示用户登录或说他们的帐户无法访问该资源。
现在,当进行REST调用并且他们没有访问权限时,响应是将页面重定向到“/”或登录。但是我希望JSON中的响应带有“拒绝访问”或“会话请登录...”等消息。
我知道这是cakephp中的flash变量,但我使用的是AngularJS。
所以我的问题是,如果用户在登录后无法访问某个其他网址,我会在cakephp中编码以发送json响应而不是HTML页面重定向?
答案 0 :(得分:0)
您只需使用正确的状态代码(401)将响应标头返回给请求。
if(!$authorized){
return header('HTTP/1.0 401 Unauthorized');
}
您可以在请求方法中捕获错误代码,例如ajax请求
.error(status){
switch(status.code)
{
case 401:
//Unauthorized
break;
}
}