我有一个很好的角度服务,可以通过查看服务器是否返回 401 错误消息来检查用户是否登录。如果是,用户将被重定向到登录页面。
这很有效,但问题是它对于我的所有页面来说都是完全全局的。我有一条特殊路线位于/explore(顺便说一句,使用 UI-router)我想忽略任何 401 并显示页面,而不重定向到登录页面。我该如何破例/explore?我的代码目前如下:
.factory('authHttpResponseInterceptor',['$q','$location',function($q,$location) {
return {
response: function(response){
if (response.status === 401) {
}
return response || $q.when(response);
},
responseError: function(rejection) {
if (rejection.status === 401) {
$location.path('/welcome');
}
return $q.reject(rejection);
}
};
}])
这应该可行,传入您希望用户重定向的特定路径:
var reservedPaths = ['/explore','/teachers','/reports'];
if (rejection.status === 401 && _.contains(reservedPaths,$location.path().trim()) {
$location.path('/welcome');
}
或者你可以使用$state.includes()
如果你想与ui-router's
状态。如果上述方法不起作用,请提供一个小问题来演示问题。
关于 @Kanh TO 关于客户端能够查看未经授权的页面的评论,我们所做的是处理客户端的受限路由,但是我们的 Web API 端点会检查身份验证/授权请求,因此即使用户确实摆弄了这一点并管理要到达未经授权的路线,他们只会看到没有数据的视图,在我看来这没什么大不了的,因为数据是您希望未经授权的用户看不到的内容,而不是您的应用程序的视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)