当HTTP请求授权失败时,离子2从服务导航



在我的离子2应用程序中,我有4个提供HTTP请求的服务。这些服务可以从我的应用中的8个不同页面中击中。我想处理以下情况:授权令已过期或删除或对此的任何变化。因此,如果用户访问其中一项服务,并且它返回了401个未经授权的错误,则如何处理错误并导航到我的登录页面,而无需在使用该服务的所有这些页面上放置条件。

要重申:我更喜欢处理在服务中进行请求的错误,并从那里导航到我的登录页面,这是可能的吗?

有更好的方法来处理此问题吗?任何建议。

Heres我所需的流程:

  • 在任何页面上,从我的一项服务(在服务中(提出API请求
  • 如果请求返回未经授权的错误(在服务中(
    • 清晰的用户数据(在服务中(
    • 导航到登录页面(在服务中(
  • 否,(假设请求成功(
    • 解析/使用我的页面中的数据(页面(

您可以使用Interceptor检查状态代码,如果响应到401,则重定向到登录页面。希望您必须知道拦截器实施

angular
    .module('myProject.myModule')
    .config(['$httpProvider', function ($httpProvider) {
 $httpProvider.interceptors.push(['$q', '$location', function ($q, $location) {
        return {
            'responseError': function(response) {
                if(response.status === 401) {
                    $location.path('/login'); 
                }
                if(response.status === 200) {
                    return $q.resolve(response);
                }
                return $q.reject(response);
            }
        };
    }]);
}]);

相关内容

  • 没有找到相关文章

最新更新