CakePHP REST + AngularJS - 如何在JSON中发送拒绝访问的响应?

时间:2015-10-20 18:41:49

标签: php json angularjs rest cakephp

我是CakePHP的新手,使用的是2.7.5版本。

我按照教程创建了一个基本的REST服务。

我现在使用基本的auth教程保护它们。

现在,我有一个针对此REST服务的AngularJS应用程序,但需要一种方法来提示用户登录或说他们的帐户无法访问该资源。

现在,当进行REST调用并且他们没有访问权限时,响应是将页面重定向到“/”或登录。但是我希望JSON中的响应带有“拒绝访问”或“会话请登录...”等消息。

我知道这是cakephp中的flash变量,但我使用的是AngularJS。

所以我的问题是,如果用户在登录后无法访问某个其他网址,我会在cakephp中编码以发送json响应而不是HTML页面重定向?

1 个答案:

答案 0 :(得分:0)

您只需使用正确的状态代码(401)将响应标头返回给请求。

if(!$authorized){
    return header('HTTP/1.0 401 Unauthorized');
}

您可以在请求方法中捕获错误代码,例如ajax请求

.error(status){
    switch(status.code)
    {
        case 401:
            //Unauthorized
        break;
    }
}