我目前正在创建一个角度Web应用程序,需要对某些部分进行身份验证,但不需要整个部分.
我必须使用来自外部方的CAS身份验证页面,并且无法弄清楚如何将两者融合在一起.
通常,我只是包含phpCas :: ForceAuthentication方法来启用auth,但由于调用来自部分视图,因此它是一个XHR请求,因此无法重定向到CAS页面(跨域错误).
我涉及主页上的身份验证解决方案,这些解决方案有时会被触发,从主服务和其他一些服务器重定向,但还没有任何工作.
如果需要,我可以详细了解相关的确切设置.
谢谢!
这就是我所做的,如果请求的视图需要身份验证,我会检查每个路由更改,如果是,则重定向到登录页面.这是我的一些代码:
检查视图是否需要验证:
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();
}
});
}
]);
Run Code Online (Sandbox Code Playgroud)
查看配置:
$stateProvider.state({
name : 'stateName',
url : '/path/',
templateUrl : 'public/partials/template.html',
controller : 'SomeController',
authenticate: true //or false if authentication is not required
})
Run Code Online (Sandbox Code Playgroud)
希望这对你有所帮助,祝你好运