我正在开发一个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表单。
答案 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');
}
});
});