http-auth-interceptor未正确设置标头

时间:2014-06-06 08:42:31

标签: angularjs angular-http-interceptors

我使用http-auth-interceptor有2个问题。我们来谈谈第一个。

  • 当API返回401(第一次)时,应用程序将捕获index.html中存在的指令中的事件event:auth-loginRequired,并显示模式以便用户可以登录。然后,在身份验证成功时,登录脚本正在调用authService.loginConfirmed(user, httpConfigCallback())。在回调中,我设置2个HTTP标头以更新API令牌。问题是当初始请求出列时我看不到标题集。这是我的代码:

    $scope.user = UserAuthService.getUser();
    
    // User is now auth, we confirm it
    authService.loginConfirmed($scope.user, function(config){
        config.headers["API_USER"] = $scope.user.guid;
        config.headers['API_TOKEN'] = $scope.user.api_token;
        return config;
    });
    

但标题未设置:

enter image description here

  • 我遇到的第二个问题是出列的请求返回401,但该指令不再被捕获,因此它没有显示登录屏幕。

2 个答案:

答案 0 :(得分:2)

它运作良好。请求标头屏幕截图是OPTIONS请求中的屏幕截图。它被我的服务器拒绝,因为我不允许我的额外标题。我添加了这个:

$response->headers->set('Access-Control-Allow-Headers', "Origin,X-Requested-With,Content-Type,Accept,API_USER,API_TOKEN");

现在一切都运转良好。 感谢

答案 1 :(得分:0)

我建议使用Angular拦截器来设置配置标头。

例如:UserAuthInterceptor