我来自 angular 1,我使用 JWT 令牌对用户进行身份验证。在角度 1 我有这个:
.config(function Config($httpProvider, jwtOptionsProvider) {
// Interceptor for token push on every $http request
jwtOptionsProvider.config({
tokenGetter: ['storageService', function (storageService) {
return storageService.getToken();
}],
whiteListedDomains: ['127.0.0.1', 'localhost'],
unauthenticatedRedirector: ['$state', 'authManager', 'storageService', 'jwtHelper', function ($state, authManager, storageService, jwtHelper) {
if (storageService.getToken() != null) {
if (jwtHelper.isTokenExpired(storageService.getToken())) {
alert('Su sesión ha caducado.');
}
}
storageService.removeToken();
storageService.clearAll();
authManager.unauthenticate();
$state.go('autorepuestos_fe');
}],
unauthenticatedRedirectPath: '/login'
});
$httpProvider.interceptors.push('jwtInterceptor');
})
这是拦截器。我通过 JWT for Angular 2 的官方页面了解到,我可以轻松拦截用户的路由并使用 AuthGuard 将其重定向。没关系,我用过并且效果很好。但是,我的问题是……在这个版本的 Angular 2 JWT 上是否有 unauthenticatedRedirector?有了这个,如果用户向我的后端的任何端点发出请求,则会自动显示一条消息并将其重定向到登录页面。
知道如何实现这一点吗?我正在考虑放置一个函数来拦截对任何端点的每次调用并首先验证令牌是否有效,如果这是真的然后发出请求......但听起来很复杂。