使用CAS进行AngularJS App身份验证 - XHR请求

时间:2014-06-03 15:57:09

标签: php angularjs cas

我目前正在创建一个角度Web应用程序,需要对某些部分进行身份验证,但不需要整个部分。

我必须使用来自外部方的CAS身份验证页面,并且无法弄清楚如何将两者融合在一起。

通常,我只是包含phpCas :: ForceAuthentication方法来启用auth,但由于调用来自部分视图,因此它是XHR请求,因此无法重定向到CAS页面(跨域错误)。

我涉及在主页面上进行身份验证的解决方案,这些解决方案有时会被触发,从主服务和其他一些服务器重定向,但还没有任何工作。

如果需要,我可以详细了解相关的确切设置。

谢谢!

2 个答案:

答案 0 :(得分:5)

这就是我所做的,如果请求的视图需要身份验证,我会检查每个路由更改,如果是,则重定向到登录页面。以下是我的一些代码:

检查视图是否需要身份验证:

app.run(['$rootScope', '$state', 'UserFactory',
    function ($rootScope, $state, UserFactory) {
        $rootScope.$on("$stateChangeStart", function (event, toState) {
           if (toState.authenticate && !UserFactory.IsAuthenticated()) {
                $state.transitionTo("login");
                event.preventDefault();
            }
        });
    }
]);

查看配置

    $stateProvider.state({
        name        : 'stateName',
        url         : '/path/',
        templateUrl : 'public/partials/template.html',
        controller  : 'SomeController',
        authenticate: true //or false if authentication is not required
    })

希望这对你有所帮助,祝你好运

答案 1 :(得分:0)

不确定我完全理解你需要做什么,但也许你可以使用http拦截器? angular docs here中有更多信息。我想你可以抓住身份验证请求并以这种方式重定向?