令牌授权 - 浏览器抛出登录表单

时间:2015-11-10 15:43:34

标签: angularjs asp.net-web-api2 token

我正在开发一个Angular / .Net应用程序的令牌实现。我的部分是前端。发生的事情是,当UI发送带有过期令牌的请求并且服务器回复401时,我无法在浏览器引发登录表单之前拦截该请求。结果我无法发送刷新令牌的请求。有人可以告诉我这是如何管理的吗?我将提供代码,但不知道要显示的内容。

由于

添加代码:

var response = $http({
        method: "GET",
        dataType: "json",
        params: params,
        headers: {
            'Content-Type': "application/xml; charset=utf-8",
        },
        url: someurl
    });
    response = response.then(function (data) {
        return data.data;
    });
    response.catch(function (data) {
        $q.reject(data);
    });
    // Return the promise to the controller
    return response;

问题是我无法在UI上重定向,因为当服务器返回401时,在我的代码被命中之前,浏览器会抛出Login表单。

1 个答案:

答案 0 :(得分:0)

发出ajax请求,如果你得到401然后重定向到登录页面。

P.S。为了更好地理解,请提供代码如何实现ajax请求。您使用哪个模块进行前端身份验证?我推荐satellizer

<强>加了: 我想你需要在角度

上进行以下配置
var app = angular.module('App', ['satellizer'])

.config(function() {
    /* your config */
}

.run(function($rootScope, $location, $auth) {

    // Check auth status on each routing,
    // Redirect to login page, if user is not authenticated or if token expired
    $rootScope.$on('$routeChangeStart', function(event, next, current) {
        if (!$auth.isAuthenticated()) {
            $location.path('/auth/login');
        }
    });
});